Hibernate Grails查询缓存被忽略

Hibernate Grails查询缓存被忽略,hibernate,grails,gorm,Hibernate,Grails,Gorm,我有一个主要读取的应用程序,所以大多数查询都使用Hibernate二级查询缓存。每次加载页面时都必须执行一个查询,因此我从布局GSP中调用它,如下所示: ${Book.countByApproved(true, [cache: true])} 我通过添加 static mapping = { cache true } 到Book.groovy。我还在DataSource.groovy hibernate { cache.use_second_level_cache = true

我有一个主要读取的应用程序,所以大多数查询都使用Hibernate二级查询缓存。每次加载页面时都必须执行一个查询,因此我从布局GSP中调用它,如下所示:

${Book.countByApproved(true, [cache: true])}
我通过添加

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
类配置了一个默认过滤器。也许使用hibernate过滤器和查询缓存会有一些问题?

如果我没弄错的话。有一个问题与你的问题完全相同,建议不要在GSP中使用query。在筛选器中尝试此操作,看看缓存是否工作。

我突然想到GSPs中的查询可能无法缓存,因此我尝试将其移动到控制器中(暂时),但它似乎仍然没有使用缓存。你有其他问题的链接吗?