2015-07-09 5 views
0

Я хотел бы узнать, в чем разница между CascadeType и FetchType в Hibernate?CascadeType vs FetchType

Они кажутся очень похожими, но я думаю, они не взаимозаменяемы, так? Когда их использовать? Могут ли они использоваться одновременно?

+1

делает мой ответ вам помочь? если да, пожалуйста, примите/голосуйте. –

+0

@jarosik если так, примите/голосуйте. – ozgur

+0

Эти два очень разные. См. Стр. 89 для FetchType. Для каскадирования см. Раздел 3.2 (стр. 80) http://download.oracle.com/otn-pub/jcp/persistence-2_1-fr-eval-spec/JavaPersistence.pdf?AuthParam=1508489100_12b9c9f1827b7c7734914284a141af08 –

ответ

5

Это 2 разные вещи:

CascadeType в Hib. может быть REFRESH, MERGE, ..., ALL вы помещаете его под связанный объект и определяет поведение связанного объекта, если текущий объект: обновлен, обновлен, удален и т. д. Поэтому всякий раз, CascadeType указывает, должен ли быть затронут связанный объект.

FetchType может быть только 2: EAGER и LAZY. Этот, который вы также разместили в связанном объекте и , определяет, должен ли соответствующий объект быть инициализирован сразу после инициализации текущего объекта (EAGER) или только по запросу (LAZY).

+0

В частности, это относится не только к Hibernate, но JPA вообще (согласно JSR338). Doc: http://download.oracle.com/otn-pub/jcp/persistence-2_1-fr-eval-spec/JavaPersistence.pdf?AuthParam=1508489100_12b9c9f1827b7c7734914284a141af08 –

0

Cascading Используется для распространения entity state transitions с родительской сущности ребенку.

Fetching используется для загрузки ассоциированных сущностей, и вы можете иметь:

  • глобальной выборку политика (определенную с помощью отображения объекта)
  • запроса времени Fetch политики (с использованием HQL/JPQL FETCH директиву)
0

Оба являются разными конфигурациями, вы можете связать их с простым SQL.

Каскад говорит вам, что происходит, когда один объект обновляется (при удалении каскада в SQL)

Fetch рассказывает, как запрос будет выполнен (присоединиться, ленивым ...)

0

Там большая разница между ними.

  • CascadeType это свойство используется для определения каскадирования в arelationship между родителем и ребенком.
  • FetchType - свойство, используемое для определения стратегий получения, которые используются для оптимизации созданного оператора выбора спящего режима, так что он может быть как можно более эффективным.

Вы можете узнать больше о них:

  1. Hibernate – fetching strategies examples
  2. Hibernate JPA Cascade Types

 Смежные вопросы

  • Нет связанных вопросов^_^