Встречается на 2% собеседований по Java

Какие знаешь способы создания Entity Graph в Hibernate

Hibernate Entity Graph позволяет контролировать загрузку связанных сущностей, избегая N+1 проблемы. Основные способы:

  1. Annotation-based (статический):
java
@Entity
@NamedEntityGraph(
    name = "Employee.department",
    attributeNodes = @NamedAttributeNode("department")
)
public class Employee { ... }
  1. Programmatic (динамический):
java
EntityGraph<Employee> graph = em.createEntityGraph(Employee.class);
graph.addAttributeNodes("department");
Map<String, Object> hints = new HashMap<>();
hints.put("javax.persistence.loadgraph", graph);
Employee emp = em.find(Employee.class, id, hints);
  1. JPA 2.1 Standard через аннотации:
java
@NamedEntityGraphs({
    @NamedEntityGraph(
        name = "graph.Employee.phones",
        attributeNodes = @NamedAttributeNode("phones")
    )
})

Ключевые типы графов:

  • LOAD (javax.persistence.loadgraph) - переопределяет стратегию загрузки
  • FETCH (javax.persistence.fetchgraph) - учитывает только указанные атрибуты

Entity Graphs особенно полезны для оптимизации запросов с ленивыми ассоциациями.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы