2009-05-19 17 views
2

多対1のプロパティマッピングを持つレコードを保存しようとしています。私はここで新しく作成された親オブジェクトを割り当てようとします(または既存のものを使用しますが、うまくいきます)が、子オブジェクトのテーブルに親オブジェクトの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カラムにnullを許可すると、親はそれを保存することで、子オブジェクトを適切に更新します。

0

この動作は、Nhibernateによって生成される代わりにプライマリキーが「割り当てられた」ことによって発生する可能性があります。

関連する問題