Grails有很多:当更新子对象时,父对象';s版本更改

Grails有很多:当更新子对象时,父对象';s版本更改,grails,gorm,one-to-many,Grails,Gorm,One To Many,我正在使用Grails,并且对有许多关系的工作方式感到非常惊讶。我有一个典型的hasMany关系,其中父id位于子表中。当我插入一个子对象并试图通过父对象保存它时,父对象的版本id会增加。我的问题是:当只有子对象发生更改时,为什么要更改父对象的版本id class Parent { static hasMany = [children: child] } class child { string name Parent parent static belon

我正在使用Grails,并且对
有许多关系的工作方式感到非常惊讶。我有一个典型的
hasMany
关系,其中父id位于子表中。当我插入一个子对象并试图通过父对象保存它时,父对象的版本id会增加。我的问题是:当只有子对象发生更改时,为什么要更改父对象的版本id

class Parent { 
    static hasMany = [children: child]
}

class child {
    string name 
    Parent parent
    static belongsTo = [Parent]
}

def p = Parent.get(1)
p.addToChildren(new Child(name: "Roy"))
p.save()
p
的版本从0增加到1。在Grails中有什么方法可以避免这种情况吗

由于父版本ID的更改,我得到了一个陈旧的对象异常。有什么帮助吗?

一种可能是为您的域对象提供帮助

更新
或者试试。

在我看来,父对象已经改变了,因为它有了一个新的子对象。我的2c worthSoren是正确的-一个属性已更改(这与向字符串属性添加一个字符非常相似),因此整个对象被视为已更改。这是一个Hibernate的东西,而不是Grails的东西。还有其他解决方案吗?我需要在表中有一个版本id列