Sobes.tech
Junior — Middle

Hogyan lehet az Entity Graph-ot alkalmazni a JPA-ban a lekérdezések optimalizálására?

sobes.tech MI

Válasz az MI-től

Az Entity Graph a JPA-ban lehetővé teszi, hogy megadja, mely kapcsolódó entitásokat kell betölteni a fő entitással együtt, így elkerülve az N+1 kérdés problémáját és optimalizálva a teljesítményt.

Létrehozhat egy NamedEntityGraph vagy dinamikus EntityGraph-ot, ahol egyértelműen meg vannak adva az attribútumok a fetch (késleltetett betöltés) számára. Például:

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

Így a felhasználó betöltésekor az összes kapcsolódó cím és rendelés azonnal betöltődik, csökkentve a kérdések számát az adatbázishoz.