2009-07-10 9 views
0

NHibernateを使ってデータベースにたくさんのデータをロードしています。私が挿入するとき、私は重複をチェックしたい。NHibernate Criteriaはキャッシュから引き出すことができます

セッションをフラッシングすることなく、各ループでsaveorupdateを呼び出します。

このセッションに、フラッシュせずに重複があるかどうかを問い合わせる方法はありますか?

答えて

0

シグニチャ 公共オーバーライドブールその後のOnLoad(オブジェクト・エンティティ、オブジェクトID、オブジェクト[]状態、文字列[] propertyNames、ITYPE []タイプ)

を以下であなたのOnSave方法を与えるカスタムインターセプタを書き込むことができますこのメソッド内で、チェックロジックを重複させることができます。 (つまり、そのタイプに既に存在するすべてのIDの辞書を保持することによって)

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

Configuration cfg = new Configuration(); 
ISaveEventListener[] stack = new ISaveEventListener[] { new MySaveListener(), new DefaultSaveEventListener() }; 
cfg.EventListeners.SaveEventListeners = stack; 
+0

私はこの問題を過ぎ去ったので、これが正しいかどうかを検証する方法はありません。誰かがそれを確認できるなら、私はその答えを受け入れるでしょう。 –

関連する問題