2010-08-27 2 views
1

В спящем режиме, есть много информации о множестве каскада «все, удалять» и так далее, , но я хочу знать, эффект множество каскада не «ни один»Hibernate: каскадный вопрос

теперь у меня есть класс Parent, и это ребенок-класс по уходу за детьми,

class Parent{ 
List<Child> childs; 
....} 

и в файле parent.hbm.xml (я опустил другое содержание)

<class name="Parent" table="parent" > 
<bag name="childs" lazy="false" table="parenthaschildsTable" cascade="none"> 
    <key> 
     <column name="parentId" not-null="true"/> 
    </key> 
    <one-to-many class="Child"> 
     <column name="childId" not-null="true"/> 
    </one-to-many> 
    </bag> 

Когда вы сохраняете родителя, я не хочу каскадно обновлять его дочерние элементы, поэтому я установил cascade="none". мой вопрос: Я установил каскад «none», если я добавлю родительский № 1, тогда я сохраню родительский элемент, можно спящий вставить новую запись в таблицу parenthaschildsTable, но не каскадировать ребенка?

ответ

3

Я поставил каскад не является «ни один», если добавить ребенок # 1 к родителю, то я сохраняю родитель, может зимовать вставить новую запись в таблицу parenthaschildsTable, но не обрушивать ребенок?

Вы изменили родительский элемент (путем изменения коллекции), поэтому Hibernate будет вставлять запись в таблицу соединений, чтобы отразить это при сохранении (когда это произойдет иначе?). И, конечно, это будет успешным только в том случае, если у ребенка уже назначено значение идентификатора. Но почему бы вам не попробовать на самом деле?

+2

+1 «Но почему бы вам не попробовать на самом деле?» – Adi

+0

хорошо, спасибо @Thivent, я уже пробовал, и в результате у ребенка родителя был добавлен успех. – user421851

+0

(+1) и я надеюсь, что знак supersaint2010 будет принят –