GORM 1:N Association Cascades删除没有belongsTo!

时间:2010-09-13 05:28:46

标签: gorm cascading-deletes

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

  

默认级联行为是级联保存和更新,但不删除,除非还指定了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会话中,以下代码删除A B的所有实例:

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

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

2 个答案:

答案 0 :(得分:0)

您确定b1和b2是否已提交到数据库?我认为a.save最后,而不是第二行可能会产生你期待的结果。

答案 1 :(得分:0)

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

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