Встречается на собеседованиях • сегодня
Как решал проблему N+1 в последнем проекте
Проблему N+1 решал через eager loading с помощью JOIN FETCH в Hibernate. Например, при загрузке сущности Order с коллекцией OrderItems:
```java
@Query("SELECT o FROM Order o JOIN FETCH o.items WHERE o.id = :id")
Order findOrderWithItems(@Param("id") Long id);
```
Для коллекций использовал @BatchSize:
```java
@Entity
public class Order {
@BatchSize(size = 20)
@OneToMany(mappedBy = "order")
private List items;
}
```
Также применял EntityGraph для сложных запросов. В Spring Data JPA это выглядит так:
```java
@EntityGraph(attributePaths = {"items", "customer"})
Order findWithItemsAndCustomerById(Long id);
```
Для read-only операций иногда использовал DTO проекции с одним запросом вместо загрузки сущностей.

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