Встречается на собеседованиях • сегодня
Где может возникнуть 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) без предварительной загрузки связанных данных.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы