1

我想创建一个不级联删除的一对多关联。阅读它说的 Grails 参考

默认的级联行为是级联保存和更新,但不删除,除非还指定了 belongsTo

这不是我看到的行为。通过以下类实现,我得到级联更新、保存删除,而没有任何 belongsTo:

class A {
   static hasMany = [bees: B]
}
class B { }

在一个 Hibernate 会话中,我执行以下操作来验证级联更新是否有效:

def a = new A()
a.save()
def b1 = new B()
a.addToBees(b1)
def b2 = new B()
a.addToBees(b2)

然后,在另一个 Hibernate 会话中,以下代码删除 AB 的所有实例:

A.list().each { a -> a.delete() }

这是一个错误吗?文档有错吗?我做错了什么吗?我正在使用 Grails 控制台来验证这种行为。

4

2 回答 2

0

保存父对象后,动态“addTo”方法会自动保存您添加的内容。

问题实际上是 Grails 控制台。一旦我将代码放入集成测试中,它就可以正常工作。

于 2010-12-10T05:24:22.947 回答
0

您确定 b1 和 b2 已提交到数据库吗?我本来以为 a.save 最后而不是第二行可能会产生您期望的结果。

于 2010-12-09T15:36:18.403 回答