Hibernate和GAE中的树(层次)结构

时间:2011-01-26 10:19:21

标签: java hibernate jpa google-cloud-datastore data-modeling

我想在Hibernate(以及GAE)中建模分层数据。

实体结构类似如下:

class Node<T>
{
    Long id;
    T nodeValue;
    Node<T> parent;
    List<Node<T>> children;
}

我可以使用JPA注释,如果有必要(我认为会这样)。

以下功能应该是可支持的:

  • 添加新根(数据库中可能有多个树 - parent = null。如果没有这个可以做到,如果这可以导致非首发设计(通过使用一些“看不见的曾祖父根节点”)
  • 向任何父级添加新节点
  • 删除节点及其整个子树结构
  • 更新节点(例如,更改父/子等)
  • 能够在树中自上而下和自下而上旅行
  • 最重要的是......给定id,能够获取特定节点然后向上行进(祖先路径)/向下(儿童路径)

更多信息(更新)

这是我逻辑上想要实现的目标:

  • 在表格中列出一个单独的类别列表。这些类别彼此没有关系
  • 有一个表格可以为这些类别创建多个“层次结构集”。

为什么我需要它们?

我正在创建一个应用程序,其中可以将文档提交到这些类别。

但是,每个用户可能对相同的类别有不同的观点。例如,我可能想要创建一个层次Company -> Departments -> HR -> World -> Asia -> India,而其他人可能想要看Company -> World -> Asia -> India -> Departments -> HR

建模这种结构的任何帮助都会很棒。

1 个答案:

答案 0 :(得分:-1)

你想要的可能是这样的(来自Hibernate的测试套件):

https://github.com/hibernate/hibernate-orm/blob/master/hibernate-core/src/test/java/org/hibernate/test/annotations/manytoone/Node.java

但没有任何具体问题,很难回答......