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;