假设我有以下域类映射到旧表,利用只读二级缓存,并具有瞬态字段:
class DomainObject {
static def transients = ['userId']
Long id
Long userId
static mapping = {
cache usage: 'read-only'
table 'SOME_TABLE'
}
}
我有一个问题,对 DomainObject 的引用由于一级缓存而被共享,因此瞬态字段正在相互写入。例如,
def r1 = DomainObject.get(1)
r1.userId = 22
def r2 = DomainObject.get(1)
r2.userId = 34
assert r1.userId == 34
也就是说,r1 和 r2 是对同一实例的引用。这是不可取的,我想缓存表数据而不共享引用。有任何想法吗?
[编辑]
现在更好地了解情况,我相信我的问题归结为以下几点:是否仍然在使用二级缓存的同时禁用特定域类的一级缓存?
[编辑]
由于似乎没有明确的方法来获得此目标,因此我们选择围绕对它的需求进行重新设计。