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

Где может возникнуть N+1 SELECT проблема

N+1 SELECT проблема возникает при работе с ORM (например, Hibernate), когда для получения связанных сущностей выполняется один запрос для основной сущности и N дополнительных запросов для каждой связанной. Пример с Hibernate: ```java @Entity public class Author { @OneToMany(mappedBy = "author") private List books; } // Проблемный код: List authors = entityManager.createQuery("SELECT a FROM Author a", Author.class) .getResultList(); for (Author a : authors) { a.getBooks().size(); // Для каждого автора выполняется отдельный SELECT } ``` Решение - использовать JOIN FETCH или @EntityGraph: ```java List authors = entityManager.createQuery( "SELECT a FROM Author a JOIN FETCH a.books", Author.class) .getResultList(); ``` Проблема чаще всего возникает при ленивой загрузке (FetchType.LAZY) без предварительной загрузки связанных данных.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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