【发布时间】: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 -> Departments -> HR -> World -> Asia -> India,而其他人可能想查看Company -> World -> Asia -> India -> Departments -> HR。
对这种结构建模的任何帮助都会很棒。
【问题讨论】:
-
请帮我为实体建模(如果需要,添加一些项目)并创建适当的配置(注释、hbm.xml 文件等任何需要的)。 :)
标签: java hibernate jpa google-cloud-datastore data-modeling