Назад к вопросам
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 оптимизирует загрузку данных, загружая связанные объекты сразу или по требованию, в зависимости от типа связи.