.net モジュールの永続性のために NHibernate を使用するブラウンフィールド マルチユーザー アプリケーション (99% Delphi、1% .net) があります。私のアプリケーションでは、いくつかのエンティティにカテゴリを追加できます。1 つを選択して、それを使用しないことにした場合 (したがって、カテゴリを再度削除する場合)、NHibernate によってロードされ、セッションの第 1 レベルのキャッシュに残ります。ここで、他のユーザーがこのカテゴリを削除し、エンティティを保存しようとすると、読み込まれたオブジェクトがもう存在しないため、アプリケーションが例外をスローします。
私の質問: もう存在しないアイテムがキャッシュにロードされているかどうかを確認する方法はありますか? もしそうなら、キャッシュから存在しないエンティティを削除する方法はありますか?
エンティティをロードします (セッション キャッシュに追加されます) カテゴリを追加します (セッション キャッシュに追加されます) 他の誰かがデータベースからカテゴリを削除します。エンティティを保存すると、カテゴリがもう存在しないため、例外が発生します。
それはまだセッションキャッシュにあります。セッションのキャッシュから (自動的に) 削除できればいいのですが? キャッシュをクリーンアップして、もう存在しないオブジェクトを削除する方法はありますか?
よろしく、テッド