Milyen mechanizmusokat használ a JPA a kapcsolódó objektumok betöltésének szervezéséhez?
sobes.tech MI
Válasz az MI-től
A JPA két fő mechanizmust használ a kapcsolódó objektumok betöltésének szervezésére:
-
Szorgalmas betöltés (EAGER) — a kapcsolódó objektumokat azonnal betölti a fő objektummal együtt. Ez akkor hasznos, ha a kapcsolódó adatoknak azonnal szükségük van, de túlzott betöltéshez és teljesítménycsökkenéshez vezethet.
-
Lassú betöltés (LAZY) — a kapcsolódó objektumokat csak az első hozzáféréskor tölti be. Ez erőforrásokat takarít meg, és szükség szerint tölti be az adatokat.
Ezeket a mechanizmusokat az @OneToMany, @ManyToOne, @OneToOne stb. annotációk segítségével lehet konfigurálni, például:
@OneToMany(fetch = FetchType.LAZY)
private List<Order> orders;
A JPA proxy objektumokat is használ a lassú betöltés megvalósításához, helyettesítve a valódi kapcsolódó objektumokat olyan helykitöltőkkel, amelyek az első híváskor töltik be az adatokat.
A választás az EAGER és LAZY között az alkalmazás teljesítmény- és logikai követelményeitől függ.