Назад к вопросам
СБЕР
Junior — Middle
87
Что такое отложенная загрузка в JPA и какие её преимущества и недостатки?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Отложенная загрузка (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().