Встречается на собеседованиях • сегодня
Как построить Entity Graph в JPA
Entity Graph в JPA позволяет оптимизировать загрузку связанных сущностей, уменьшая количество SQL-запросов.
**Пример:**
```java
@Entity
@NamedEntityGraph(
name = "Employee.withDepartment",
attributeNodes = @NamedAttributeNode("department")
)
public class Employee {
@Id
private Long id;
private String name;
@ManyToOne(fetch = FetchType.LAZY)
private Department department;
}
// Использование в репозитории/сервисе
EntityGraph graph = em.createEntityGraph(Employee.class);
graph.addAttributeNodes("department");
TypedQuery query = em.createQuery("SELECT e FROM Employee e", Employee.class);
query.setHint("javax.persistence.loadgraph", graph);
List employees = query.getResultList(); // Загрузит сотрудников с отделами одним запросом
```
**Типы графов:**
- **Load Graph (`javax.persistence.loadgraph`)** – указанные атрибуты загружаются EAGER, остальные – по умолчанию.
- **Fetch Graph (`javax.persistence.fetchgraph`)** – только указанные атрибуты загружаются EAGER, остальные – LAZY.
Подходит для решения проблемы N+1.

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