Sobes.tech
Назад к вопросам
Senior
6

Какие отношения между сущностями в Hibernate по умолчанию жадные (EAGER), какие ленивые (LAZY)?

Компании, где спрашивали
Позитив Технолоджис

Ответ от нейросети

sobes.tech AI

В Hibernate по умолчанию отношения между сущностями имеют следующие типы загрузки:

  • @ManyToOne и @OneToOne — по умолчанию EAGER (жадная загрузка). Это значит, что связанные сущности загружаются сразу вместе с основной.
  • @OneToMany и @ManyToMany — по умолчанию LAZY (ленивая загрузка). Связанные коллекции загружаются только при обращении к ним.

Это поведение можно переопределить с помощью аннотаций @FetchType.LAZY или @FetchType.EAGER.

Пример:

@Entity
class Order {
    @ManyToOne(fetch = FetchType.EAGER) // по умолчанию
    private Customer customer;

    @OneToMany(fetch = FetchType.LAZY) // по умолчанию
    private Set<OrderItem> items;
}