Sobes.tech
Back to questions
Junior — Middle
80

Можете объяснить, как работает стратегия загрузки Lazy в JPA/Hibernate?

Companies where asked
DCloud

Answer from AI

sobes.tech AI

Стратегия загрузки Lazy (ленивая загрузка) в JPA/Hibernate означает, что связанные сущности не загружаются сразу при загрузке основной сущности, а только при первом обращении к ним. Это помогает оптимизировать производительность, уменьшая количество данных, загружаемых из базы.

Например, если у вас есть сущность Order с коллекцией items, при загрузке заказа из базы Hibernate не загрузит сразу все items. Они будут загружены только тогда, когда вы вызовете order.getItems().

Пример:

@Entity
public class Order {
    @OneToMany(fetch = FetchType.LAZY)
    private List<Item> items;
}

При таком подходе Hibernate создаёт прокси-объект для коллекции items, и реальный запрос к базе выполняется только при обращении к этой коллекции.