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