【发布时间】:2016-04-08 02:01:55
【问题描述】:
我有一个系统来确定菜单链接层次结构并构建面包屑。我有 2 张桌子:Voce 和 Voci。
Voce 既是菜单链接名称又是页面标题名称。 Voci 代表Voce 的层次结构。每个Voce 可以有另一个Voce 作为儿子(这里你看不到相关代码,反正我使用JPA 将一个Voce 绑定到许多Voci)。例如,这是页面/链接“添加许多项”的层次结构:menu --> manage menu --> add many items.
----------
| |
| \/ Voce
| -----------------------
| |id | name |
| -----------------------
| |1 |menu |
| -----------------------
| |2 |manage menu |
| -----------------------
| |3 |add single item |
| -----------------------
| |4 |add many items |
| -----------------------
|
|_____________
| |
| |
Voci | |
-----------------
|id |father|son |
----------------
|1 | 1 | 2 |
----------------
|2 | 2 | 3 |
-----------------
|3 | 2 | 4 |
-----------------
我的问题是:如何确定链接“添加许多项目”的层次结构以构建相关面包屑?我必须从最后一个元素(“添加许多项”)开始确定层次结构,这是我拥有的唯一数据。
是否有单个查询或 JPA 方式(我正在使用 Spring MVC 和 Hibernate)让我知道确定链接“添加许多项”的层次结构的所有 Voci 记录。
我希望清楚。
谢谢
【问题讨论】:
-
你用的是什么数据库?在 Oracle 数据库中,
CONNECT BY PRIOR语句可以帮助您。否则,您将在 Java/JPA 中获取父亲,然后是父亲的父亲,依此类推,直到父亲为空(或根)。
标签: java sql hibernate spring-mvc jpa