同じNHibernateという名前のクエリを同じパラメーターで2回(毎回異なるセッション)実行する単純な単体テストがあります。これは単純なintパラメーターであり、私のクエリは名前付きクエリであるため、これら2つの呼び出しは同一であり、結果をキャッシュする必要があると想定しています。
実際、ログで結果がキャッシュされていることがわかりますが、キーは異なります。したがって、2番目のクエリ結果がキャッシュに見つかりません。
これが私のログからの抜粋です(キーがどのように異なるかに注意してください):
(最初のクエリ)
DEBUG NHibernate.Caches.SysCache2.SysCacheRegion [(null)] <(null)>-新しいデータの追加:key = [snipped] ...パラメーター:['809']; 名前付きパラメーター:{} @ 743460424&value = System.Collections.Generic.List`1 [System.Object]
(2番目のクエリ)
DEBUG NHibernate.Caches.SysCache2.SysCacheRegion [(null)] <(null)>-新しいデータの追加:key = [snipped] ...パラメーター:['809']; 名前付きパラメーター:{} @ 704749285&value = System.Collections.Generic.List`1 [System.Object]
クエリキャッシュを使用するようにNHibernateを設定しました。そして、これらのクエリをcacheable=trueに設定しています。他にどこを見ればいいのかわからない。誰か提案がありますか?
ありがとう
-マイク