Встречается на собеседованиях • сегодня
Когда возникает ошибка LazyInitializationException
LazyInitializationException возникает при попытке доступа к лениво загружаемой коллекции или ассоциации вне контекста открытой Hibernate сессии. Это происходит потому, что Hibernate использует прокси-объекты для ленивой загрузки, которые требуют активной сессии.
Типичные сценарии:
1. Доступ к коллекции после закрытия сессии
2. Использование в отключенном состоянии (detached entity)
Пример:
```java
@Entity
class Order {
@OneToMany(fetch = FetchType.LAZY)
private List- items;
// getters/setters
}
// В другом месте кода:
Order order = session.get(Order.class, 1L);
session.close();
order.getItems().size(); // LazyInitializationException
```
Способы решения:
1. Использовать `FetchType.EAGER` (не всегда оптимально)
2. Явно инициализировать коллекцию в рамках сессии: `Hibernate.initialize(order.getItems())`
3. Использовать Open Session in View паттерн
4. Применить JOIN FETCH в JPQL/HQL запросе

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