Lazy loading — данные загружаются
Eager loading — связанные данные загружаются
Выбор стратегии зависит от сценария и баланса между производительностью и простотой.
#spring
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥1👏1
Spring AOP обычно работает через
Ограничения:
—
—
—
—
#spring
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥2🎉1
Идемпотентность означает, что
Способы реализации:
—
—
—
—
#spring
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥2👏1🌚1
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🔥3❤2