Junior — Middle
Milyen típusú lustán és mohón adatbetöltési stratégiák ismertek a JPA-ban?
sobes.tech MI
Válasz az MI-től
A JPA-ban két fő stratégia létezik a kapcsolódó adatok betöltésére:
-
Szorgalmas betöltés (EAGER): a kapcsolódó entitások azonnal betöltődnek a fő entitással együtt. Ez akkor hasznos, ha a kapcsolódó adatokra azonnal szükség van, de túl sok lekérdezést eredményezhet és csökkentheti a teljesítményt.
-
Lassú betöltés (LAZY): a kapcsolódó entitások csak az első hozzáféréskor töltődnek be. Ez erőforrásokat takarít meg, de megköveteli, hogy az EntityManager session nyitva legyen a hozzáférés pillanatában, különben LazyInitializationException hiba léphet fel.
JPA példakód:
@OneToMany(fetch = FetchType.LAZY)
private List<Order> orders;
@OneToOne(fetch = FetchType.EAGER)
private Profile profile;