1

NHibernate の第 2 レベルのキャッシュが SessionFactory レベルで機能することを理解しています。マルチテナント環境で作業するために、NHibernate 構成で接続プロバイダーを使用しています。第 2 レベルのキャッシュが接続プロバイダーとどのようにやり取りするのか疑問に思っています。つまり、個別の接続文字列ごとにキャッシュをインテリジェントに維持するのか、それともすべての接続が同じキャッシュを共有するのか?

同じキャッシュを共有することは、同じクエリがヒットするデータベースに基づいて異なる結果を返すため、明らかに大したことではありません。

4

1 に答える 1

0

2 番目のレベルのキャッシュの有効期間は、個々のセッションではなく、セッション ファクトリに関連付けられています。エンティティが一意の ID によって読み込まれ、第 2 レベルのキャッシュがアクティブになると、そのエンティティは (同じセッション ファクトリの) 他のすべてのセッションで使用できるようになります。

したがって、第 2 レベルは、同じセッション ファクトリのセッションを介してのみ機能します。

詳細については、NHibernate の第 1 レベルと第 2 レベルのキャッシュを参照してください。

于 2012-07-31T17:18:37.403 に答える