Встречается на собеседованиях • сегодня
Что такое ошибка LazyInitializationException
LazyInitializationException возникает в Hibernate при попытке загрузить лениво загружаемую коллекцию (например, `@OneToMany`) вне контекста сессии. Это происходит потому, что прокси-объект не может выполнить запрос к БД после закрытия сессии.
**Типичный сценарий:**
```java
@Entity
public class Parent {
@OneToMany(fetch = FetchType.LAZY)
private List children;
// геттеры/сеттеры
}
// В коде:
Parent parent = session.get(Parent.class, id);
session.close(); // сессия закрыта
parent.getChildren().size(); // LazyInitializationException!
```
**Решение:**
1. Инициализировать коллекцию в рамках сессии: `Hibernate.initialize(parent.getChildren())`
2. Использовать `JOIN FETCH` в запросе
3. Открыть сессию на время обработки (Open Session in View)
4. Изменить стратегию загрузки на `EAGER` (не рекомендуется)

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