【发布时间】:2010-09-13 07:44:46
【问题描述】:
我正在使用 Grails,并且对 hasMany 关系的工作方式感到非常惊讶。我有一个典型的 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 的更改,我得到一个过时的对象异常。有什么帮助吗?
【问题讨论】:
-
在我看来,Parent 对象已经改变了,因为它有了一个新的孩子。我的 2c 价值
-
Soren 是正确的 - 属性已更改(类似于将一个字符添加到 String 属性),因此整个对象都被视为已更改。这是 Hibernate 的事情,而不是 Grails 的事情。
标签: grails grails-orm one-to-many