您不能使用HQL进行递归查询。看到这个。如前所述,它甚至不是标准的SQL。您有两种选择:
- 编写特定于供应商的递归本机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 }我肯定会选择第二个选项。



