Встречается на собеседованиях • сегодня
В чем разница между обычной и Lazy загрузкой JPA
Обычная загрузка (EAGER) сразу загружает связанные сущности при запросе основной, что может привести к избыточным запросам и проблемам с производительностью. Lazy загрузка (LAZY) откладывает загрузку связанных данных до момента их фактического использования.
Пример с аннотациями:
```java
@Entity
class Order {
@OneToMany(fetch = FetchType.EAGER) // загрузит сразу все items
List items;
}
@Entity
class User {
@OneToMany(fetch = FetchType.LAZY) // загрузит orders только при обращении
List orders;
}
```
Ключевые отличия:
- EAGER: проще в использовании, но может создавать N+1 проблему
- LAZY: требует открытой сессии при обращении к данным, но оптимизирует производительность
- По умолчанию: @ManyToOne и @OneToOne - EAGER, @OneToMany и @ManyToMany - LAZY

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