在Grails中,您可以拥有一个子课程:
class Child {
Father father
static belongsTo = [Father, Mother]
}
有两个父类
class Mother{
}
class Father {
}
如果我father.delete()
,那么Grails会抛出一个数据库错误,指出Father
无法删除,因为child
仍然存在。
如果 all-delete-orphan
类没有直接引用,如何级联Child
Father
到 Child
类?
答案 0 :(得分:2)
使用hasMany将其设为双向。
class Mother{
static hasMany = Child
}
class Father{
static hasMany = Child
}
这样做应该使级联工作,当你删除其中一个父母时,孩子也将被删除。
答案 1 :(得分:0)
Peter Ledbrook有一篇很好的文章报道了这一点 GORM Gotchas Part 2
我无法将belongsTo唯一的部分用于工作,但这对我有用:
class Father {
static hasMany = [children: Child]
}
class Child {
static belongsTo = [father: Father]
}
void testDeleteItg() {
def father = new Father().save()
def child = new Child()
father.addToChildren child
child.save()
def childId = child.id
father.delete(flush:true)
assertNull(Child.get(childId))
}