Propagation (передача транзакции) — политика того, как метод с аннотацией @Transactional будет взаимодействовать с существующей транзакцией.
Виды:
▪️
▪️ REQUIRES_NEW:
▪️
▪️ MANDATORY:
▪️
▪️ NESTED:
#spring
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤2🔥1👏1
DispatcherServlet — это
Он принимает все входящие
🔹 При получении запроса он:
— Определяет нужный
— Передаёт выполнение
— Обрабатывает результат с помощью
#spring
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤1🔥1
Lazy Initialization — это подход, при котором
Такой подход экономит
#spring
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤1🔥1
Проблема N+1 возникает при работе с
Если у нас 100 пользователей, выполнится
Решения:
🔹
@Query("SELECT u FROM User u JOIN FETCH u.orders")
List<User> findAllWithOrders();🔹
@EntityGraph(attributePaths = {"orders"})
List<User> findAll();🔹
@BatchSize(size = 10)
private List<Order> orders;
Выбор решения зависит от конкретной ситуации: для единичных запросов подходит JOIN FETCH, для повторяющихся паттернов - EntityGraph или Batch Size.
#spring
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥4❤2
Есть Spring Boot приложение с несколькими @Configuration классами, и в них определены бины с одинаковыми именами. Что произойдет при старте приложения и как разрешить конфликт?
🔹 Ответ:
Spring
Если нужно разрешить конфликт, есть несколько путей:
— Использовать
— Использовать
— Использовать
#spring
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤1🔥1