15. Какие два типа fetch-стратегии в JPA вы знаете?

15. Какие два типа fetch-стратегии в JPA вы знаете?

UNKNOWN

В JPA описаны два типа fetch-стратегии:

  1. LAZY —  данные  поля  сущности  будут  загружены  только  во  время  первого обращения к этому полю.
  2. 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) вы можете перечислить?

Все вопросы по теме: список

Все темы: список

Вопросы/замечания/предложения/нашли ошибку: напишите мне

Report Page