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

Почему возникает проблема N+1

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

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

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

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