Grails文档指出,
class Person {
..
static mapping = {
table 'people'
cache true
}
}
“将配置一个包含惰性和非惰性属性的'读写'缓存。”
如果我们在Person中有一对多关系,例如
static hasMany = [addressess: Address]
Grails是否将其视为懒惰财产? Address对象是否也被缓存,或者只有与给定Person相关的ID保存在缓存中?
答案 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