包含Grails中的延迟和非延迟属性的缓存

时间:2013-08-27 16:58:14

标签: hibernate grails orm associations ehcache

Grails文档指出,

class Person {
    ..
    static mapping = {
        table 'people'
        cache true
    }
}

“将配置一个包含惰性和非惰性属性的'读写'缓存。”

如果我们在Person中有一对多关系,例如

static hasMany = [addressess: Address]

Grails是否将其视为懒惰财产? Address对象是否也被缓存,或者只有与给定Person相关的ID保存在缓存中?

1 个答案:

答案 0 :(得分:3)

默认情况下,Grails中的关联被视为lazy

在上面针对Person的特定示例中,将缓存all个地址对象。上面的默认缓存设置可以扩展为:

cache usage: 'read-write', include: 'all' //includes lazy and non-lazy

为了仅缓存Person内的关联,您需要

addresses cache: true

为了放弃Person中的缓存关联,您需要

cache usage: 'read-write', include: 'non-lazy' 
//usage can be according to the need 'read-only', 'read-write', etc