Sobes.tech
Junior — Middle

Comment peut-on appliquer Entity Graph dans JPA pour optimiser les requêtes?

sobes.tech IA

Réponse de l'IA

Entity Graph dans JPA permet de spécifier quelles entités liées doivent être chargées avec l'entité principale pour éviter le problème des requêtes N+1 et optimiser les performances.

On peut créer un NamedEntityGraph ou un EntityGraph dynamique, où les attributs pour le chargement eager (fetch) sont explicitement indiqués. Par exemple :

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);

Ainsi, lors du chargement de l'utilisateur, l'adresse et les commandes associées seront immédiatement chargées, ce qui réduira le nombre de requêtes à la base de données.