Sobes.tech
Junior — Middle
134

Jak rozlišit režimy načítání dat FetchType Eager a Lazy a v čem jsou jejich hlavní rozdíly?

Odpověď od AI

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.