Sobes.tech
Junior — Middle

Jakie znane są typy strategii ładowania leniwej i chciwej w JPA?

sobes.tech AI

Odpowiedź od AI

W JPA istnieją dwie główne strategie ładowania powiązanych danych:

  • Ładowanie eager (EAGER): powiązane encje są ładowane od razu wraz z główną encją. Jest to wygodne, gdy powiązane dane są potrzebne od razu, ale może prowadzić do nadmiernych zapytań i obniżenia wydajności.

  • Ładowanie lazy (LAZY): powiązane encje są ładowane tylko przy pierwszym odwołaniu się do nich. Oszczędza to zasoby, ale wymaga, aby sesja EntityManager była otwarta w momencie dostępu do danych, w przeciwnym razie może wystąpić błąd LazyInitializationException.

Przykład adnotacji w JPA:

@OneToMany(fetch = FetchType.LAZY)
private List<Order> orders;

@OneToOne(fetch = FetchType.EAGER)
private Profile profile;