hibernate 在Grails中同时包含惰性和非惰性属性的缓存

cu6pst1q  于 2022-12-04  发布在  其他
关注(0)|答案(2)|浏览(134)

Grails文档指出

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

“将配置一个包含惰性与非惰性属性得”读写“缓存.”
在Person中具有一对多关系的情况下,例如:

static hasMany = [addressess: Address]

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

hs1rzwqc

hs1rzwqc1#

默认情况下,关联在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
twh00eeo

twh00eeo2#

假设您在Hibernate中使用Gorm。

**默认情况下,Hibernate不缓存集合。**如果要缓存集合,则必须分别将每个集合标记为要缓存。

static mapping = {
    addresses cache: true
}

相关问题