如何在Grails中级联删除?

时间:2016-10-18 09:35:21

标签: grails cascade

我有一个域A,它有hasMany域B和C. B有属于A和C有一个A关系。

我正在删除A但它会引发“参照完整性约束违规:”的错误。

现在我希望当我删除A时它的相关B和C记录也会被删除。

2 个答案:

答案 0 :(得分:2)

尝试这样的事情:

@Transactional
void deleteA(Long id) {
     A a = A.get(id)
     def listOfB = B.findAllByA(A)
     listOfB*.delete()
     def listOfC = C.findAllByA(A)
     listOfC*.delete()
     A.delete(flush: true)
}

答案 1 :(得分:2)

Grails文档有一个专门针对此的部分:

http://docs.grails.org/latest/ref/Database%20Mapping/cascade.html