2011-06-18 2 views
1

У меня есть родительский и дочерний таблицы. у родителя есть набор детей. эти две таблицы имеют отношение «один к многим». в hbm i отображается один-ко-многим. мое требование, когда размер детей пуст, я не должен сохранять ребенка, только родитель должен быть сохранен. если размер детей не пуст, необходимо сохранить оба родителя и детей. в дочерней таблице у меня есть 3 столбца, все они не являются нулевыми столбцами. Я не могу сохранить нулевые значения. возможно ли это в спящем режиме? если да, пожалуйста, помогите мне в этом отношении.Спящий режим: сохранение родителя в одиночку, когда ребенок пуст

Спасибо!

ответ

0

до тех пор, пока вы persist объекты сущности, спящий режим будет делать то, что вы хотите.

Если у вас нет нулевых столбцов, вы должны указать значения.

+0

Спасибо за ваш ответ ... возможно ли сохранить только родителя без ребенка, когда chidl равен null? – user755806

+0

Да. У вас не может быть детей, либо имеющих нулевой набор, либо пустой набор. Однако не ставьте нуль в набор. – Bohemian

0

в спящем отображения не add not-null='true'

parent.hbm.xml

<set cascade="all, delete-orphan" name="child" order-by="param"> 
     <key> 
     <column name="child_parent_id"/> 
     </key> 
     <one-to-many class="com.Child"/> 
</set> 

child.hbm.xml

<many-to-one class="com.Parent" insert="false" name="rateCode" update="false"> 
     <!-- cascade="all" --> 
     <column name="child_parent_id"/> 
</many-to-one> 

ява

в то время как save|saveUpdate

parent.addChild = null;

+0

Привет Рави, Большое спасибо за ваш ответ. если мы используем код выше, потому что мы используем cascade = all, спящий вставляет внешний ключ в дочернюю таблицу? если он вставлен, то у меня будет проблема, потому что в дочерней таблице все столбцы не являются нулевыми столбцами. – user755806

+0

как я сказал при сохранении родительского набора дочерних наборов | list | bag to 'NULL', так что идентификатор ребенка также будет равен нулю –

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