Hibernate: каскадный вопрос - PullRequest
       20

Hibernate: каскадный вопрос

1 голос
/ 27 августа 2010

В hibernate есть много информации о настройке каскада "all, delete" и т. Д., Но я хочу знать эффект установки каскада "none"

теперь у меня есть класс Parent,и это дочерний класс Child,

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>

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

1 Ответ

3 голосов
/ 27 августа 2010

Я установил каскад "none", если я добавляю дочерний элемент № 1 к родительскому элементу, затем сохраняю родительский элемент, может ли Hibernate вставить новую запись в таблицу parenthaschildsTable, но не каскадный дочерний элемент?

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

...