Sobes.tech
Junior — Middle

Cum se poate aplica Entity Graph în JPA pentru optimizarea interogărilor?

sobes.tech AI

Răspuns de la AI

Entity Graph în JPA permite specificarea entităților asociate care trebuie încărcate împreună cu entitatea principală pentru a evita problema N+1 de interogări și pentru a optimiza performanța.

Se poate crea un NamedEntityGraph sau un EntityGraph dinamic, unde sunt specificați explicit atributele pentru încărcarea eager (fetch). De exemplu:

EntityGraph<User> graph = entityManager.createEntityGraph(User.class);
graph.addAttributeNodes("address", "orders");

Map<String, Object> hints = new HashMap<>();
hints.put("javax.persistence.fetchgraph", graph);

User user = entityManager.find(User.class, userId, hints);

Astfel, la încărcarea utilizatorului, adresa și comenzile asociate vor fi încărcate imediat, reducând numărul de interogări către bază.