我的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