Java Core middle
Что такое LazyInitializationException и как с ним жить?
Ответ
Попытка обратиться к lazy-полю после закрытия сессии. Решения: JOIN FETCH в запросе, @EntityGraph, DTO-проекции, OpenSessionInView (анти-паттерн в проде).
Разбор: Корректные решения — подгрузить нужные данные внутри транзакции через JOIN FETCH, @EntityGraph или сразу маппить в DTO-проекцию; OpenSessionInView держит сессию открытой, но в проде это анти-паттерн. Ловушка: тотальный EAGER порождает проблему N+1 и лишнюю загрузку, а DTO-проекции, наоборот, помогают избежать исключения, а не вызывают его.
Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.