Grails反向级联删除没有hasMany或belongsTo

时间:2011-05-10 20:06:11

标签: grails foreign-keys gorm cascading-deletes

我有两个域类。

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,那么也要删除它 - 递归。”

1 个答案:

答案 0 :(得分:5)

好吧,看来整个参照完整性的一点就是不要在你问题的第二部分做你想做的事情。但是,您可以将此闭包添加到UsersAddThese域类:

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

这应该可以解决问题。