nHibernate: сохранение нового родительского объекта при создании дочернего объекта - PullRequest
2 голосов
/ 19 мая 2009

Я пытаюсь сохранить запись с сопоставлением свойств многие-к-одному. Я пытаюсь назначить вновь созданный родительский объект здесь (или использовать существующий, но это работает нормально), но я получаю ошибку, когда он пытается добавить идентификатор родительского объекта в дочернюю таблицу. Сказать, что он не может добавить NULL в таблицу, и это правда, но я подумал, что 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?

Ответы [ 2 ]

1 голос
/ 19 мая 2009

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

0 голосов
/ 11 июня 2009

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

...