Встречается на собеседованиях • сегодня

Когда возникает ошибка 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 запросе
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы