2009-05-19 4 views
2

Я пытаюсь сохранить запись, которая имеет многозначное сопоставление свойств. Я пытаюсь назначить вновь созданный родительский объект здесь (или использовать существующий, но это прекрасно работает), но я получаю сообщение об ошибке, когда он пытается добавить идентификатор родительского объекта в таблицу ребенка. Сказать, что он не может добавить NULL в таблицу, это правда, но я думал, что nHibernate достаточно умен, чтобы сначала сохранить родительский объект, даже если я добавляю его.nHibernate: сохранение нового родительского объекта при создании дочернего объекта

Отображения:

Ребенок:

<many-to-one name="parent" class="ParentClass" column="parentID" cascade="all"/> 

Родитель:

<bag name="DataList" table="ChildTable" lazy="false" inverse="true" cascade="all-delete-orphan"> 
     <key column="parentID" /> 
     <one-to-many class="ChildClass" /> 
    </bag> 

В принципе, это то, что NHibernate может сделать?

ответ

1

Я не могу видеть ваше родительское сопоставление, но я бы сделал ставку, если у вас есть inverse = true и каскадирование включено для набора дочерних объектов, и вы разрешаете null в столбце parentID вашего дочернего объекта, когда родитель обернулся, чтобы сохранить его, чтобы он правильно обновил дочерний объект.

0

Это может быть вызвано тем, что ваш первичный ключ «назначен» вместо сгенерированного Nhibernate.

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