Встречается на собеседованиях • сегодня
Какие знаешь стратегии загрузки данных в Hibernate
Hibernate поддерживает несколько стратегий загрузки данных:
1. **Eager Loading** – данные загружаются сразу при запросе сущности.
Пример:
```java
@ManyToOne(fetch = FetchType.EAGER)
private Department department;
```
2. **Lazy Loading** – данные загружаются только при обращении к полю (по умолчанию для `@ManyToMany`, `@OneToMany`).
Пример:
```java
@OneToMany(fetch = FetchType.LAZY, mappedBy = "employee")
private List tasks;
```
3. **Batch Loading** – оптимизация для Lazy Loading, загружает несколько связанных сущностей одним запросом.
Пример:
```java
@BatchSize(size = 10)
@OneToMany(fetch = FetchType.LAZY)
private Set orders;
```
4. **Join Fetch** – загрузка через `JOIN FETCH` в JPQL/HQL для исключения N+1 проблемы.
Пример:
```java
"SELECT e FROM Employee e JOIN FETCH e.department"
```
5. **Subselect Fetch** – загружает все связанные коллекции одним подзапросом.
Пример:
```java
@OneToMany(fetch = FetchType.LAZY)
@Fetch(FetchMode.SUBSELECT)
private List comments;
```

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