Назад к вопросам
Junior — Middle
99
Как отличить режимы загрузки данных FetchType Eager и Lazy и в чем их основные различия?
Ответ от нейросети
sobes.tech AI
В JPA (Java Persistence API) режимы загрузки FetchType определяют, когда связанные сущности загружаются из базы данных:
-
EAGER (жадная загрузка) — связанные данные загружаются сразу вместе с основной сущностью. Это удобно, когда связанные данные точно нужны, но может привести к избыточным запросам и нагрузке.
-
LAZY (ленивая загрузка) — связанные данные загружаются только при первом обращении к ним в коде. Это экономит ресурсы, но может вызвать ошибку
LazyInitializationException, если сессия уже закрыта.
Пример:
@Entity
public class Order {
@OneToMany(fetch = FetchType.LAZY)
private List<Item> items;
}
Здесь items загрузятся только при вызове order.getItems(), а не сразу при загрузке Order.