Что такое LAZY и EAGER loading в JPA?

Middle
390 просмотров
AFK Offer AI

EAGER — связанные сущности загружаются сразу с основной (JOIN или доп. SELECT). LAZY — загружаются только при первом обращении (через прокси). По умолчанию: @ManyToOne, @OneToOne — EAGER, @OneToMany, @ManyToMany — LAZY. Рекомендация: всё ставить LAZY и подгружать через JOIN FETCH или EntityGraph где нужно. LazyInitializationException — обращение к LAZY-полю вне сессии (контроллер вернул сущность, сессия закрылась). Решение: DTO или Open Session in View (антипаттерн).

Следующий вопрос

Напишите метод удаления дубликатов из List без Set