Встречается на собеседованиях • сегодня
В чем разница между видами FetchType в Hibernate
Разница между `FetchType.LAZY` и `FetchType.EAGER` в Hibernate заключается в стратегии загрузки связанных сущностей:
**LAZY** - загружает данные только при первом обращении к ним. Оптимален для производительности, так как избегает лишних запросов. По умолчанию для `@ManyToMany` и `@OneToMany`.
```java
@OneToMany(fetch = FetchType.LAZY)
private List orders;
```
**EAGER** - загружает данные сразу вместе с основной сущностью. Может вызывать N+1 проблему. По умолчанию для `@ManyToOne` и `@OneToOne`.
```java
@ManyToOne(fetch = FetchType.EAGER)
private User user;
```
Важно: LAZY требует открытой сессии при обращении к данным, иначе будет `LazyInitializationException`. EAGER может снижать производительность при сложных графах объектов.

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