Встречается на собеседованиях • сегодня
Как избежать возникновения ошибки LazyInitializationException
LazyInitializationException возникает при попытке доступа к лениво загруженным коллекциям вне сессии Hibernate. Основные способы избежать:
- Инициализация в рамках сессии:
java
Hibernate.initialize(entity.getLazyCollection());- Использование JOIN FETCH в HQL/JPQL:
java
"FROM Entity e JOIN FETCH e.lazyCollection WHERE e.id = :id"-
@Transactional на сервисном слое - чтобы сессия оставалась открытой на время всей бизнес-логики.
-
DTO проекции - вместо работы с сущностями.
-
Open Session in View (OSIV) - но это антипаттерн, лучше избегать.
Лучшая практика - явно загружать нужные данные в рамках одного запроса, используя JOIN FETCH или EntityGraph.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы