Встречается на собеседованиях • сегодня
Что такое Lazy в Hibernate
Lazy loading (ленивая загрузка) — это стратегия, при которой связанные сущности или коллекции загружаются только при первом обращении к ним, а не сразу при загрузке родительской сущности. Это оптимизирует производительность, уменьшая количество SQL-запросов.
Пример с аннотацией `@OneToMany`:
```java
@Entity
public class Order {
@OneToMany(fetch = FetchType.LAZY)
private List items;
// другие поля и методы
}
```
При загрузке `Order` коллекция `items` не будет загружена до явного обращения к ней. Если сессия закрыта до обращения, возникнет `LazyInitializationException`. Для работы с lazy вне сессии можно использовать:
- `Hibernate.initialize()`
- JOIN FETCH в HQL
- EntityGraph
Ленивая загрузка включена по умолчанию для коллекций и `@ManyToOne`/`@OneToOne` (с optional=true). Для `@ManyToOne`/`@OneToOne` с optional=false используется EAGER.

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