默认和只读二级Hibernate缓存之间的区别

时间:2015-03-12 17:16:29

标签: hibernate grails caching

我的Grails应用程序具有以下域类

class Role {

    String authority

    static mapping = {
        cache usage:'read-only'
    }

    static constraints = {
        authority blank: false, unique: true
    }
}

通常通过诸如

之类的查询来检索此类的实例
Role.findByAuthority('ROLE_USER', [cache: true])

请注意,此查询的结果已缓存(在Hibernate的第二级缓存中),对于类型为Role的对象,此缓存已声明为只读。

如果上面显示的只读高速缓存定义被读写高速缓存替换,即

static mapping = {
    cache true
}
这会有什么不同?我的猜测是,当使用只读缓存时,任何持久修改从缓存中检索的对象的尝试都会导致错误这是正确的吗?

除了

为了启用查询缓存,您还需要在DataSource.groovy

中配置以下内容
hibernate.cache.use_query_cache = true

0 个答案:

没有答案