Sobes.tech
Junior — Middle

Kuidas saab JPA-s kasutada Entity Graphi päringute optimeerimiseks?

sobes.tech AI

Vastus AI-lt

Entity Graph JPA-s võimaldab määrata, millised seotud entiteedid tuleb koos põhientiteediga laadida, et vältida N+1 päringute probleemi ja optimeerida jõudlust.

Saate luua NamedEntityGraph või dünaamilise EntityGraph, kus selgelt näidatakse atribuudid eager laadimiseks (fetch). Näiteks:

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

Nii laaditakse kasutaja laadimisel kohe kaasa seotud aadress ja tellimused, mis vähendab päringute arvu andmebaasile.