0

我已经实现了一个支持 n 级深度嵌套的类别域。

Category 表包含一个 parent_id,它只是 Category 表的一个 id。

public class Category {

String name;
//Reference to parent category
Category parentCategory;
//Child categories if this Category is a parent (Should I keep this in domain or remove it?)
Set categories;
}

A > B > C

M > N > O > P > Q

上面的层次结构可以通过将A的id设置为B的parent_id,将B的id设置为C的parent_id,将M的id设置为N的parent_id,将N的id设置为O的父id等等来创建。

现在我想显示所有类别的树状结构(使用 jsTree)。获取数据的最佳方式是什么?

4

1 回答 1

0

您可以将 hasMany 与 self 的关系用于子子类别。

public class Category {
   String name;
   //Reference to parent category
   Category parentCategory;
   static hasMany = [subCategories: Category]
}

现在,您可以通过使用“。”对父元素进行延迟获取以获取子元素。对父元素进行操作或使用标准来急切地获取所有子元素(前提是成本不高)。

注意:我们只需要parentCategory为了将树从叶节点向上移动到根节点。如果只需要一种方式遍历,那么hasMany映射就足够了。

于 2013-04-14T00:39:00.623 回答