【问题标题】:GORM 1:N Association Cascades Delete Without belongsTo!GORM 1:N Association Cascades Delete without belongsTo!
【发布时间】:2010-09-13 05:28:45
【问题描述】:

我想创建一个不级联删除的一对多关联。阅读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 控制台来验证这种行为。

【问题讨论】:

    标签: grails-orm cascading-deletes


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2022-11-03
        • 2017-03-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-11-03
        • 2022-01-09
        • 2020-02-05
        • 2012-12-04
        相关资源
        最近更新 更多