Java 如何在HQL查询中按列表索引排序?

Java 如何在HQL查询中按列表索引排序?,java,hibernate,orm,Java,Hibernate,Orm,这就是我的处境: 我有两个实体,其一对多关系映射如下(仅给出相关部分): 列OPA_SORT_ORDER没有映射,我让Hibernate来处理 我的问题是:我想对单个调查的答案执行HQL查询,并希望这些答案按OPA_SORT_顺序排序。此查询不是这样工作的: select new AnswerDTO(a.id, a.answerText, 0) from Survey p join p.answers a where p.id = ? 选择new AnswerDTO(a.id,a.answe

这就是我的处境:
我有两个实体,其一对多关系映射如下(仅给出相关部分):

列OPA_SORT_ORDER没有映射,我让Hibernate来处理 我的问题是:我想对单个调查的答案执行HQL查询,并希望这些答案按OPA_SORT_顺序排序。此查询不是这样工作的:

select new AnswerDTO(a.id, a.answerText, 0) from Survey p join p.answers a where p.id = ? 选择new AnswerDTO(a.id,a.answerText,0) 来自调查p 加入p.a 其中p.id=?
在日志中,我可以看到此HQL生成的SQL查询中没有ORDERBY。我该怎么做?我需要添加
sortOrder
属性来回答实体吗?

不,您不需要添加属性,HQL有一个内置函数
索引

select new AnswerDTO(a.id, a.answerText, 0) 
from Survey p 
join p.answers a
where p.id = ? 
order by index(a)

不需要,您不需要添加属性,HQL有一个内置函数
索引

select new AnswerDTO(a.id, a.answerText, 0) 
from Survey p 
join p.answers a
where p.id = ? 
order by index(a)