【发布时间】:2015-11-17 15:25:47
【问题描述】:
我有 2 个处于多对多关系的 DomainClass:
class Foo {
static hasMany=[bars:Bar]
}
Class Bar {
static belongsTo = [Foo]
static hasMany=[foos:Foo]
}
现在我想像这样向 Foo 添加一个 Bar:
Foo foo = Foo.get(params.fooId)
Bar bar = Bar.get(params.barId)
if(!foo || !bar)
return render(template:'error')
foo.addToBars(bar)
foo.save(flush:true, failOnError:true)
return render(template:'success')
这导致HibernateOptimisticLockingFailureException:
org.springframework.orm.hibernate4.HibernateOptimisticLockingFailureException: 带有标识符 [1] 的类 [test.Foo] 的对象:乐观锁定失败;嵌套异常是 org.hibernate.StaleObjectStateException:行已被另一个事务更新或删除(或未保存值映射不正确):[test.Foo#1]
为什么会出现这个错误?
【问题讨论】:
-
在 Bar 类中应该是“static belongsTo = Foo”(无括号)吗?
-
我试过了,但没有帮助。
标签: grails grails-orm