Встречается на собеседованиях • сегодня
Как работает ленивая загрузка данных в Hibernate
Ленивая загрузка (Lazy Loading) в Hibernate означает, что связанные сущности загружаются только при первом обращении к ним, а не сразу при загрузке родительского объекта. Это оптимизирует производительность, уменьшая количество SQL-запросов.
Пример с аннотацией `@OneToMany`:
```java
@Entity
public class Parent {
@Id
private Long id;
@OneToMany(fetch = FetchType.LAZY, mappedBy = "parent")
private List children; // Не загружается сразу
}
// При обращении к children:
Parent parent = session.get(Parent.class, 1L);
parent.getChildren().size(); // Тут выполнится SQL-запрос
```
Важные моменты:
1. Работает только при открытой сессии (иначе - LazyInitializationException)
2. Для работы в отключенном состоянии нужен Hibernate.initialize() или Open Session in View
3. Можно настроить через аннотации (@ManyToOne, @OneToOne и др.)
4. FetchType.LAZY - значение по умолчанию для @OneToMany и @ManyToMany

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