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

Встречался ли с проблемой N+1 в Hibernate

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

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

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

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