我有两个域类指定三个级别的分类。
class CategoryGroup {
String name
static hasMany = [categories:Category]
}
class Category {
String name
Category topCategory = null
Set<Category> subCategories
static mappedBy = [subCategories:'topCategory',topCategory:'subCategories']
static hasMany = [subCategories:Category, categoryGroups:CategoryGroup]
static belongsTo = [CategoryGroup]
}
CategoryGroup
是最高级别,那么每个CategoryGroup
都有很多categories
(每个Category
都可以在 many 之下CategoryGroup
)。也每一个Category
都有很多subCategories
。如果一个类别topCategory
包含它的父类别,则可以将其标识为子类别。
现在问题来了。
我创建了两个CategoryGroup
s:男装和女装
然后我创建了一个Category
:服装,并将其放在男装和女装下 现在我再创建两个类别 - 拳击手和纱丽,并将它们作为服装的子类别,只有拳击手放在CategoryGroup
男装和纱丽服被置于CategoryGroup
妇女之下。
我想要的是,当我选择男士,然后我选择服装时,只有属于父类别男士的服装下的子类别应该出现(即只有拳击手而不是纱丽服)
但是当我这样做时,拳击手会自动添加到女装!也就是说,当我这样做时boxers.categoryGroups.name
,我会同时看到男士和女士的。
这怎么可能发生?