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

Приведи пример проблемы N+1 в Hibernate

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

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

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

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