0

マッピングの両端で定義された cascade="all" と 1 対多の端で inverse="true" で定義された双方向の 1 対多の関係があります。

SaveOrUpdate を新しいエンティティに呼び出すと、親テーブルに行が正しく挿入され、すべての子オブジェクトが子テーブルに挿入されます。

ただし、既存のエンティティがあり、子オブジェクトのいくつかのプロパティを更新した場合 (いくつかの文字列プロパティを変更するなど)、親エンティティで SaveOrUpdate を呼び出すと、親テーブルの情報のみが更新されます。すべての子エンティティも更新されることを期待していました。

これは予想される動作ですか?すべての子オブジェクトを自分で手動で更新する必要がありますか? マッピングで何かを台無しにしたかどうか (その場合は質問に追加します)、またはこれが NHibernate の動作方法であるかどうかはわかりません。

編集:エラーが見つかりました。いつものようにキーボードと椅子の間に問題があります。

4

1 に答える 1

1

気にしないでください。私は愚かで、どの列にもマップされていないプロパティを更新していました。

NH は、更新のみが必要な子レコードを更新するようです。

于 2012-08-30T15:20:45.790 に答える