0

我有两个域类指定三​​个级别的分类。

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包含它的父类别,则可以将其标识为子类别。

现在问题来了。

我创建了两个CategoryGroups:男装和女装
然后我创建了一个Category:服装,并将其放在男装和女装下 现在我再创建两个类别 - 拳击手和纱丽,并将它们作为服装的子类别,只有拳击手放在CategoryGroup男装和纱丽服被置于CategoryGroup妇女之下。

我想要的是,当我选择男士,然后我选择服装时,只有属于父类别男士的服装下的子类别应该出现(即只有拳击手而不是纱丽服)

但是当我这样做时,拳击手会自动添加到女装!也就是说,当我这样做时boxers.categoryGroups.name,我会同时看到男士和女士的。

这怎么可能发生?

4

0 回答 0