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🔥4❤2
  