Встречается на собеседованиях • сегодня
Что происходит при использовании FetchType.LAZY
При `FetchType.LAZY` загрузка связанных сущностей откладывается до момента первого обращения к ним. Это оптимизирует производительность, избегая лишних запросов к БД.
**Важно:**
- Работает только в контексте открытой сессии (Hibernate Session или JPA EntityManager)
- При попытке доступа к ленивой коллекции/полю вне сессии будет `LazyInitializationException`
Пример:
```java
@Entity
public class Order {
@OneToMany(fetch = FetchType.LAZY)
private List- items; // Не загружается сразу
}
// В транзакции:
Order order = em.find(Order.class, 1L);
// items еще не загружены
order.getItems().size(); // Только здесь выполняется запрос
```
Для решения проблемы вне сессии можно:
1. Использовать `JOIN FETCH` в запросе
2. Открыть транзакцию на время работы
3. Инициализировать коллекцию через `Hibernate.initialize()`

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