Jpa 如何在ORDER BY查询中获取条目索引

Jpa 如何在ORDER BY查询中获取条目索引,jpa,jpql,Jpa,Jpql,我需要找到一种方法来获取查询结果中每个条目的索引,让我展示一个示例: 假设Person表中有3个条目 威利 迈克 艾伦 我想查询该表以返回它的所有条目,我想知道返回它们的索引,以及 伪代码如下所示: SELECT [INDEX], p.name FROM Person p ORDER BY p.name 1 - Alan 2 - Mike 3 - Willie 我应该用什么替换[INDEX],以获得如下结果: SELECT [INDEX], p.name FROM Person p OR

我需要找到一种方法来获取查询结果中每个条目的索引,让我展示一个示例:

假设
Person
表中有3个条目

  • 威利
  • 迈克
  • 艾伦
我想查询该表以返回它的所有条目,我想知道返回它们的索引,以及

伪代码如下所示:

SELECT [INDEX], p.name FROM Person p ORDER BY p.name
1 - Alan
2 - Mike
3 - Willie
我应该用什么替换
[INDEX]
,以获得如下结果:

SELECT [INDEX], p.name FROM Person p ORDER BY p.name
1 - Alan
2 - Mike
3 - Willie

有没有一种使用JPQL的方法可以做到这一点?

您可以使用一个数据库函数,并使用JPQL中的FUNC()(EclipseLink)或function()(JPA2.1)调用它。EclipseLink还支持SQL()在JPQL中嵌入您想要的任何SQL。或者你可以使用本机查询,或者只是在Java代码中添加索引,因为你真的不需要从数据库中选择它。

你知道JPQL会返回一个
列表
,并且
列表
本身是有序的吗?是的,我知道,只是在这个特殊情况下,我需要在查询结果中进行排序。如果没有其他方法,我将使用列表索引,但我希望避免这种情况