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.