Sobes.tech
Senior
49

Ce relații între entități în Hibernate sunt, în mod implicit, eager (EAGER), iar care sunt lazy (LAZY)?

Companiile au fost întrebate
Позитив Технолоджис

Răspuns de la AI

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;
}