【问题标题】:Grails reverse cascade delete without hasMany or belongsTo没有hasMany或belongsTo的Grails反向级联删除
【发布时间】:2011-08-22 18:50:39
【问题描述】:

我有两个域类。

class UsersAddThese {
  String someData
}

class TheseAreConstantlyGenerated {
  UsersAddThese theProblem
}

有什么方法可以删除UsersAddThese 并自动删除所有TheseAreConstantlyGenerated,或者我应该只在findAllByTheProblem 中添加逻辑,然后迭代并删除。 (我希望它可以自动完成,这样我就可以添加引用UsersAddThese 的新生成类而不更改删除控制器。)

或者,有什么方法可以告诉 GORM,“如果其他事情取决于我要删除的内容以导致 ERROR util.JDBCExceptionReporter - Cannot delete or update a parent row: a foreign key constraint fails,那么也将其删除 - 递归。”

【问题讨论】:

    标签: grails foreign-keys grails-orm cascading-deletes


    【解决方案1】:

    好吧,看起来参照完整性的全部意义在于不要做您在问题的第二部分中尝试做的事情。但是,您可以将此闭包添加到您的 UsersAddThese 域类中:

    def beforeDelete () {
        TheseAreConstantlyGenerated.withNewSession {
          TheseAreConstantlyGenerated.findAllByTheProblem(this).each {TheseAreConstantlyGenerated thing ->
            thing.delete()
          }
        }
    }
    

    这应该可以解决问题。

    【讨论】:

      猜你喜欢
      • 2014-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-27
      • 1970-01-01
      • 1970-01-01
      • 2014-03-15
      相关资源
      最近更新 更多