2011-07-19 8 views
1

例外の例外をスローするときにEmployeebyProjectテーブルに挿入したい。NHibernateの一時オブジェクトの例外

表EmployeebyProject:{PK:社員PK:PROJECTID、DateBegin、DateEnd}

これはマッピングである:

方法

<composite-id> 
    <key-many-to-one name="Project" column="ProjectId" class="Project" cascade="save"></key-many-to-one> 
    <key-many-to-one name="Employee" column="EmployeeId" class="Employee"></key-many-to-one> 
</composite-id> 

<property name="DateBegin" type="DateTime"/> 
<property name="DateEnd" type="DateTime"/> 

enter code here

この問題を回避できますか?

答えて

1

休止状態のパースペクティブは、いくつかの状態にある可能性があります。 - 一時的なもの、接続されたもの、切り離されたもの... 一時的なものは、まだデータベースに保存されていませんでした。 もし私が関係A-> Bを持っていれば、Aを保存するためにBを保存する必要があります(HibernateはBに外部キーを入れるために何を知る必要があるので)。

だから、2つのオプション:前にBセーブで

  1. 。あなたのケースでは、プロジェクト、従業員
  2. カスケードを入れてください。あなたの場合、従業員にカスケードがありません
+1

私は従業員をcascade = "save"の前に保存しますが、動作しません... – ale