15. Какие два типа fetch-стратегии в JPA вы знаете?
UNKNOWNВ JPA описаны два типа fetch-стратегии:
- LAZY — данные поля сущности будут загружены только во время первого обращения к этому полю.
- EAGER — данные поля будут загружены немедленно вместе с сущностью.
FetchType.EAGER: Hibernate должен сразу загрузить соответствующее аннотированное поле или свойство. Это поведение по умолчанию для полей, аннотированных @Basic, @ManyToOne и @OneToOne (все что быстро).
FetchType.LAZY: Hibernate может загружать данные не сразу, а при первом обращении к ним, но так как это необязательное требование, то Hibernate имеет право изменить это поведение и загружать их сразу. Это поведение по умолчанию для полей, аннотированных @OneToMany, @ManyToMany и @ElementCollection (все что медленно) .
Раньше у Hibernate все поля были LAZY, но в последних версиях - всё как в JPA 2.0.
Предыдущий вопрос: 14. Что такое каскадные операции?
Следующий вопрос: 16. Какие четыре статуса жизненного цикла Entity-объекта (Entity Instance’s Life Cycle) вы можете перечислить?
Все вопросы по теме: список
Все темы: список
Вопросы/замечания/предложения/нашли ошибку: напишите мне