自分自身と関係のあるid、name、およびrefカラムを持つemployees joinエンティティクラスを持っています。私はそれの新しいインスタンスを作成し、それをdbに保持したい。オブジェクトは未保存の一時インスタンスを参照します。フラッシングする前に一時インスタンスを保存します
私はEmployeeクラスのインスタンスを作成し、それをmanagerという名前で作成しました。 Id = 1、Name = "A"、RefId = null の値を持つEmployeeテーブルからレコードを取得し、それらの値をマネージャオブジェクトに設定しました。その後私は再びEmployeeクラスのインスタンスを作成しました
このプロパティの値は emp.Name = "B"、emp.Ref = managerのように設定します。 最後に、base.Add(resource)メソッドを使用して永続化しました。 Nhibernateは次のエラーを発生させました: "オブジェクトはフラッシュされる前に一時インスタンスを保存する未保存の一時インスタンスを参照します"。
これは、マッピングファイルの内容です:
<class name="Employee" table="Employee" schema="dbo" optimistic-lock="none" lazy="true">
<id name="Id" access="property" column="Id">
<generator class="identity" />
</id>
<property name="Name" type="String" column="Name" length="50" />
<property name="RefId" type="Int64" column="RefId" insert="false" update="false"/>
<many-to-one name="Ref" class="Employee" column="RefId" not-null="false" fetch="select" />
class>
このエラーを解決するために私を助けてください。 THX
自己参照するオブジェクトが1つ存在することを意味しますか、または2つの従業員オブジェクトが存在し、それらの間に参照があることを意味しますか? IEの場合、2つの従業員レコードがあり、それらの間に外部キーがあるか、またはプライマリキーを指す外部キーを持つ従業員レコードが1つあります。 – bzarah
また、従業員エンティティのマッピングファイルまたはコードを持つと便利です。 – bzarah
おかげさまで、ありがとうございました。私はもっと明確にしようとします。私は私の質問を編集しました。それらの間に外部キーを持つ従業員レコードが2つあります。 –