Когда именно в процессе выполнения Hibernate происходит загрузка данных поля из базы данных?

В Hibernate загрузка данных из базы происходит в момент обращения к полю или объекту, если используется ленивое (lazy) извлечение. При eager-загрузке данные подгружаются сразу при загрузке сущности.

Короткий ответ

Что ответить на собеседовании

В Hibernate загрузка данных из базы происходит в момент обращения к полю или объекту, если используется ленивое (lazy) извлечение. При eager-загрузке данные подгружаются сразу при загрузке сущности.

Подробный разбор

Ответ с пояснениями

В Hibernate загрузка данных из базы происходит в момент обращения к полю или объекту, если используется ленивое (lazy) извлечение. При eager-загрузке данные подгружаются сразу при загрузке сущности.

То есть, если поле помечено как FetchType.LAZY, Hibernate создаёт прокси-объект, и реальный запрос к базе выполняется только при первом обращении к этому полю. Если же FetchType.EAGER, данные загружаются сразу вместе с основной сущностью.

Пример:

@Entity
public class User {
    @Id
    private Long id;

    @OneToMany(fetch = FetchType.LAZY)
    private List<Order> orders;
}

В этом случае список заказов orders загрузится из базы только при первом вызове user.getOrders().

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее