カテゴリの階層である Grails ドメイン クラスがあります。各カテゴリには親カテゴリがあります (null であるルート カテゴリを除く)。
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に、削除を親からすべての子にカスケードするように指示する必要がありますが、子からその親にはカスケードしないでください。