Java Core middle

Что такое LazyInitializationException?

Ответ

Обращение к lazy-полю после закрытия сессии (вне транзакции), когда прокси не может догрузить данные. Решения (от лучшего к худшему): DTO-проекция (SELECT NEW), JOIN FETCH (@Query), @EntityGraph(attributePaths), @BatchSize(size=100).

Разбор: LazyInitializationException возникает при обращении к lazy-полю уже после закрытия Hibernate-сессии (вне транзакции), когда прокси не может догрузить данные. Правильные решения — заранее подтянуть нужные данные: DTO-проекция, JOIN FETCH, @EntityGraph, @BatchSize. Ловушка: глобальный EAGER — антипаттерн (N+1, лишние данные), а JOIN FETCH и @EntityGraph как раз предотвращают эту ошибку.

Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.

Заказать гайд Пройти тест
новые гайды и свежие вопросы с собесов — первыми в Telegram Смотреть гайды Подписаться