Sobes.tech
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;