我如何在Hibernate Criteria API中使用row_number(或具有相同行为的任何东西?

问题描述 投票:0回答:1

我想使用CriteriaBuilder API实现类似的查询:

SELECT *, ROW_NUMBER() OVER( ORDER BY Student_Score) AS RowNumberRank
FROM StudentScore

主要问题是JPQL不支持窗口函数,并且我不知道如何复制其行为...

java hibernate jpa window-functions criteria-api
1个回答
0
投票

分析功能是特定于供应商的。这使得使用CriteriaBuilder API很难实现。使用本机查询将您的Java应用程序与特定的数据库供应商联系在一起。为避免这种情况,您可以创建一个特定于供应商的视图,并在Java应用程序中使用该视图使用条件api进行选择。

除了StudentScore实体之外,您还必须定义一个具有额外属性StudentScoreView的(只读)rowNumberRand实体,可以在JPQL查询中使用它。

© www.soinside.com 2019 - 2024. All rights reserved.