问题出在主题
目前,我观察到的行为是,当我致电Parent.removeFromChilds(child)
时,不会从我的数据库中删除子项(即我可以使用Child.findBy...(args)
找到它。)
我很好奇这是不是正确的行为。如果是 - 在一次交易中删除关系和子女的最佳方法是什么?
如果不是 - 我可能做错了什么?
答案 0 :(得分:3)
默认情况下,如果删除一对多的拥有方,则删除级联。如果您只是删除孩子,它将不会删除。您可以通过在关系的拥有方指定“all-delete-orphan”的自定义级联行为来更改它。来自Grails doc:
class Person {
String firstName
static hasMany = [addresses: Address]
static mapping = { addresses cascade: "all-delete-orphan" } }
<强>更新强>
Part 2 of GORM Gotchas对不太明显的addTo
和removeFrom
行为进行了很好的细分。我认为它包含您正在寻找的确切信息。