0

NHibernate を使用してデータベースに大量のデータをロードしています。挿入しているので、重複をチェックしたい。

セッションをフラッシュせずに、各ループで saveorupdate を呼び出します。

フラッシュせずに重複についてこのセッションを照会する方法はありますか?

4

2 に答える 2

0

次のシグネチャを持つonsaveメソッドを提供するカスタムインターセプターを作成できますpublicoverridebool OnLoad(object entity、object id、object [] state、string [] propertyNames、IType [] types)

次に、このメソッド内に重複するチェックロジックを含めることができます。(つまり、そのタイプにすでに存在するすべてのIDの辞書を保持することによって)

または、ISaveEventListnerのカスタム実装で重複するチェックコードを直接接続することもできます。nhibernateの設定時にカスタムイベントリストナーを登録する必要があります。これがrefのスニペットです

Configuration cfg = new Configuration();
ISaveEventListener[] stack = new ISaveEventListener[] { new MySaveListener(), new DefaultSaveEventListener() };
cfg.EventListeners.SaveEventListeners = stack;
于 2009-11-01T21:58:47.813 に答える
0

nhibernate を Spring.NET と統合して、Spring.NET が DAO サポートを作成してセッションを処理できるようにする必要があるかもしれません。うまくいけば、これは役に立ちます!http://www.springframework.net/docs/1.1-RC2/reference/html/dao.html

于 2009-07-10T22:34:47.460 に答える