【问题标题】:Tree (Hierarchical) Structure in Hibernate and GAEHibernate 和 GAE 中的树(分层)结构
【发布时间】:2015-09-08 19:44:52
【问题描述】:

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

实体结构类似如下:

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

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

应支持以下功能:

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

更多信息(更新)

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

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

我为什么需要它们?

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

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

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

【问题讨论】:

  • 请帮我为实体建模(如果需要,添加一些项目)并创建适当的配置(注释、hbm.xml 文件等任何需要的)。 :)

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


【解决方案1】:

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

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

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

【讨论】:

  • 我在主要问题本身中提出了一些更具体的细节......如果这些见解可以帮助你帮助我,请告诉我:)
  • @partenon: github链接坏了。
  • 虽然我同意面对断开的链接令人失望,但在 Hibernate 测试套件上查找它应该不难(我在答案本身中提到了来源)。此外,查看测试套件是一个很好的做法,可以找到很好的使用示例。无论如何,我已经修复了链接。
猜你喜欢
  • 2011-09-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-13
  • 1970-01-01
  • 2011-11-24
  • 2014-06-01
  • 1970-01-01
相关资源
最近更新 更多