2009-05-19 72 views
2

我想保存一個具有多對一屬性映射的記錄。我試圖在這裏分配一個新創建的父對象(或者使用現有的,但是工作正常),但是當它試圖將父對象的ID添加到子表的表中時會出現錯誤。說它不能將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並且級聯打開了一組子對象,並且你允許在你的子對象的parentID列中有空值,父母開始保存它會正確更新子對象。

0

這種行爲可能是由您的主鍵被「分配」而不是由Nhibernate生成的。