【问题标题】:fetching n level deep relation in hibernate/gorm在hibernate / gorm中获取n级深度关系
【发布时间】:2013-04-13 17:39:13
【问题描述】:

我已经实现了一个支持 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)。获取数据的最佳方式是什么?

【问题讨论】:

    标签: java hibernate grails grails-orm


    【解决方案1】:

    您可以对子子类别使用 hasMany 与 self 的关系。

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

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

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

    【讨论】:

      猜你喜欢
      • 2021-05-05
      • 2020-08-17
      • 2012-02-25
      • 1970-01-01
      • 2020-03-12
      • 2011-05-09
      • 1970-01-01
      • 1970-01-01
      • 2012-11-15
      相关资源
      最近更新 更多