[英]Grails query cache is ignored
我有一個主要是讀取的應用程序,因此大多數查詢都使用Hibernate二級查詢緩存。 我有一個必須在每次加載頁面時執行的查詢,所以我從布局GSP中調用它,如下所示:
${Book.countByApproved(true, [cache: true])}
我通過添加為Book
類啟用了二級緩存
static mapping = {
cache true
}
到Book.groovy
。 我還在DataSource.groovy
配置了以下內容
hibernate {
cache.use_second_level_cache = true
cache.use_query_cache = true
cache.region.factory_class = 'net.sf.ehcache.hibernate.EhCacheRegionFactory'
}
在同一個文件中,我通過在dataSource
塊中添加logSql=true
來啟用查詢日志記錄。
每次加載頁面時, Book.countByApproved(true)
記錄Book.countByApproved(true)
查詢,因此我認為這意味着未從查詢緩存中檢索結果? 我在本地運行所有內容,因此緩存查詢結果已過期,因此不可能丟失緩存。
我不知道這是否相關,但我正在使用Hibernate Filters插件並為Book
類配置了默認過濾器。 使用hibernate過濾器和查詢緩存可能存在一些問題?
如果我沒錯的話。 有一個問題與你的問題完全相同,建議不要在GSP中使用查詢。 在過濾器中嘗試此操作,查看緩存是否有效。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.