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

Возможна ли проблема N+1, если установлена EAGER

Да, проблема N+1 может возникнуть даже при EAGER-загрузке, хотя чаще ассоциируется с LAZY. При EAGER проблема проявляется, когда Hibernate делает отдельные SELECT для каждого дочернего объекта, вместо использования JOIN. Пример: ```java @Entity public class Parent { @OneToMany(fetch = FetchType.EAGER) private List children; } ``` При запросе `em.createQuery("FROM Parent").getResultList()` Hibernate сначала сделает SELECT для всех Parent, затем отдельные SELECT для каждого списка Child. Решение - использовать JOIN FETCH в JPQL: ```java em.createQuery("SELECT p FROM Parent p JOIN FETCH p.children") ``` Ключевое отличие от LAZY: при EAGER проблема возникает сразу при загрузке родительских сущностей, а не при обращении к дочерним.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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