Sobes.tech
Назад к вопросам
Junior — Middle
132

Какое значение имеет стратегия загрузки по умолчанию в Hibernate для связных сущностей?

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

sobes.tech AI

В Hibernate стратегия загрузки (fetch strategy) по умолчанию для связных сущностей зависит от типа связи:

  • Для связей @ManyToOne и @OneToOne по умолчанию используется EAGER загрузка, то есть связанные сущности загружаются сразу вместе с основной.

  • Для связей @OneToMany и @ManyToMany по умолчанию используется LAZY загрузка, то есть связанные коллекции загружаются только при первом обращении к ним.

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

Пример:

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

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

Таким образом, Hibernate оптимизирует загрузку данных, загружая связанные объекты сразу или по требованию, в зависимости от типа связи.