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

Что такое N+1 проблема в Hibernate

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

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

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

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