我有一个 Grails 域类,它是类别的层次结构。每个类别都有一个父类别(根类别除外,它为空)。
class Category {
String name
static mapping = {
cache true
name index:'category_name_idx'
}
static belongsTo = [parent:Category]
static constraints = {
parent(nullable:true)
}
}
我的问题:删除与我期望的完全相反的级联:
- someSubCategory.delete() 删除类别,然后尝试删除父类别(如果父类别有其他子类别,则会失败并违反完整性)。
- parentCategory.delete() 不会级联删除其子级,而是会因违反完整性而失败。
我究竟做错了什么?我的理解是,上面的“belongsTo”应该告诉 GORM 级联删除从父级到所有子级,而不是从子级到其父级。