Junior — Middle
Millised JPA viivituse ja innukusega laadimise strateegiad on teada?
sobes.tech AI
Vastus AI-lt
JPA-s on kaks peamist strateegiat seotud andmete laadimiseks:
-
Hoolikas laadimine (EAGER): seotud üksused laaditakse kohe koos peamise üksusega. See on kasulik, kui seotud andmed on kohe vajalikud, kuid võib põhjustada liigseid päringuid ja vähendada jõudlust.
-
Hiline laadimine (LAZY): seotud üksused laaditakse ainult esmakordsel juurdepääsul. See säästab ressursse, kuid nõuab, et EntityManageri sessioon oleks avatud juurdepääsu ajal, vastasel juhul võib tekkida LazyInitializationException viga.
Näide annotatsioonist JPA-s:
@OneToMany(fetch = FetchType.LAZY)
private List<Order> orders;
@OneToOne(fetch = FetchType.EAGER)
private Profile profile;