Junior — Middle
135
Šta je odloženo učitavanje u JPA i koje su njegove prednosti i mane?
Компаније где су питане
Одговор од АИ
sobes.tech АИ
Отложенная загрузка (Lazy Loading) в JPA — это механизм, при котором связанные сущности или коллекции не загружаются из базы данных сразу при загрузке основной сущности, а только при первом обращении к ним в коде.
Преимущества:
- Экономия ресурсов и времени при загрузке, если связанные данные не всегда нужны.
- Снижение объёма передаваемых данных и нагрузки на базу.
Недостатки:
- Возможность возникновения ошибки
LazyInitializationException, если доступ к отложенно загруженным данным происходит вне контекста сессии EntityManager. - Потенциальное увеличение количества SQL-запросов (проблема N+1).
Пример настройки отложенной загрузки для связи @OneToMany:
@Entity
public class Author {
@OneToMany(fetch = FetchType.LAZY, mappedBy = "author")
private List<Book> books;
}
Здесь список книг автора загрузится только при обращении к author.getBooks().