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

Как не получать исключения при работе с Lazy объектами без жадного подключения

Используйте Optional для безопасной работы с Lazy. Проверя isInitialized(), можно избежать LazyInitializationException. В Hibernate можно включить hibernate.enable_lazy_load_no_trans (но это антипаттерн). Лучший подход — открывать транзакцию или использовать FetchType.EAGER для критичных полей.

Пример:

java
Optional.ofNullable(lazyValue)
    .filter(Lazy::isInitialized)
    .map(Lazy::getValue)
    .orElse(defaultValue);

Для Spring Data — @EntityGraph или JOIN FETCH в JPQL:

java
@Query("SELECT e FROM Entity e JOIN FETCH e.lazyField WHERE e.id = :id")
Entity findWithLazyField(@Param("id") Long id);
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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