0
我有一個閱讀大多數應用程序,所以大多數查詢使用Hibernate的第二級查詢緩存。我有一個必須每一個頁面加載時間執行一個查詢,所以我調用它從佈局GSP是這樣的:Grails查詢緩存被忽略
${Book.countByApproved(true, [cache: true])}
我已經啓用了Book
類2級高速緩存,加入
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)
查詢都會被記錄下來,所以我認爲這意味着結果沒有從查詢緩存中檢索出來?我在本地運行所有東西,所以不可能因爲緩存的查詢結果已經過期而錯過緩存。
我不知道這是否相關,但我使用的是Hibernate Filters plugin併爲Book
類配置了默認過濾器。也許有使用hibernate過濾器和查詢緩存的問題?
我想到GSP中的查詢可能不會被緩存,所以我嘗試將它移入控制器(暫時),但它似乎仍然沒有使用緩存。你有這個其他問題的鏈接? – 2013-05-14 13:06:56
http://stackoverflow.com/questions/16441392/grails-not-using-query-cache-in-view – 2013-05-14 13:28:58