Встречается на собеседованиях • сегодня
Как использовать Entity Graph в JPA
Entity Graph в JPA позволяет управлять загрузкой связанных сущностей, избегая проблемы N+1 запросов.
**Пример:**
```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;
}
```
**Использование:**
```java
EntityGraph graph = em.getEntityGraph("Employee.withDepartment");
TypedQuery query = em.createQuery("SELECT e FROM Employee e", Employee.class);
query.setHint("javax.persistence.loadgraph", graph);
List employees = query.getResultList(); // department загружается сразу
```
**Типы графов:**
- **Load Graph (`javax.persistence.loadgraph`)** – указанные атрибуты загружаются EAGER, остальные – по умолчанию.
- **Fetch Graph (`javax.persistence.fetchgraph`)** – только указанные атрибуты загружаются, остальные – LAZY.
Подходит для оптимизации запросов без изменения маппинга сущностей.

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