データベーストリガーを起動するには、nhibernateを介して変更されていないオブジェクトを保存する必要があります。
では、プロパティが変更されていなくても、このオブジェクトがダーティであることをnhibernateに伝えるにはどうすればよいですか?
データベーストリガーを起動するには、nhibernateを介して変更されていないオブジェクトを保存する必要があります。
では、プロパティが変更されていなくても、このオブジェクトがダーティであることをnhibernateに伝えるにはどうすればよいですか?
Radimsの回答に対する私のコメントに関して、私は次のことを行いました:
エンティティの loadedstate 配列の 1 つのエントリを変更したため、nhibernate は次回の保存時に変更されたものとして認識します。
これがちょっとした回避策であることはわかっていますが、私にとってはこれまでのところうまくいきます。
EntityEntry entry = sessImpl.PersistenceContext.GetEntry(dbo);
entry.LoadedState[x] = y;
まさにこのシナリオのための NHibernate 拡張ポイントがあります。この場合、カスタムを追加EventListener
するか、IInterceptor
.
この質問を確認してください動的更新または挿入を使用する場合、NHibernate がプロパティを常にダーティと見なすようにする方法は? 解決策(IInterceptorに基づく回答)
NHibernate のドキュメントを参照してください。12. インターセプターとイベント