クエリのキャッシュと ORDER BY 句を使用した NHibernate のバグと呼ばれるものを見ています...
次のクエリを実行すると...
SELECT this_.Id as y0_,
this_.Name as y1_
FROM Products this_
WHERE this_.IsActive = 1
ORDER BY this_.IsPremium desc
... NHibernate は、クエリ キャッシュをオンにして、このクエリをキャッシュするように指示すると (eg を使用してcriteria.SetCacheable(true)
)、結果を正常にキャッシュします。
残念ながら、素晴らしいNHProfが教えてくれるように、NHibernate はこのクエリを実行するときにもキャッシュされたクエリ結果を使用します。
SELECT this_.Id as y0_,
this_.Name as y1_
FROM Products this_
WHERE this_.IsActive = 1
ORDER BY this_.IsPremium desc,
this_.Name
誰かが理由を説明したり、この「機能」に関する詳細なドキュメントを教えてくれませんか? または、さらに良いことに、誰かが問題の解決策を持っていますか?