我有一个树结构,其中每个Node都有一个父级和一个Set<Node> children。每个节点都有一个String title,我想在其中选择进行查询,Set<String> titles即该节点和所有父节点的标题。如何编写此查询?
Node
Set<Node> children
String title
Set<String> titles
单个标题的查询就是这样,但是就像我说的那样,我希望它扩展到整个父母分支。
SELECT node.title FROM Node node WHERE node.id = :id
干杯
尼克
您不能使用HQL进行递归查询。看到这个。如前所述,它甚至不是标准的SQL。您有两种选择:
// obtain the first node using your query while (currentNode.parent != null) { Query q = //create the query q.setParameter("id", currentNode.getParentId()); Node currentNode = (Node) q.getSingleResult(); nodes.add(currentNode); // this is the Set }
我肯定会选择第二个选项。