我想创建一个不会级联删除的一对多关联。阅读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控制台验证此行为。
答案 0 :(得分:0)
您确定b1和b2是否已提交到数据库?我认为a.save最后,而不是第二行可能会产生你期待的结果。
答案 1 :(得分:0)
保存父对象后,动态“addTo”方法会自动保存您添加的内容。
问题实际上是Grails控制台。一旦我将代码放入集成测试中,它就可以正常工作。