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.