如何将 row_number(或具有相同行为的任何东西)与 Hibernate Criteria API 一起使用?

How do I use row_number (or anything with same behavior) with Hibernate Criteria API?

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

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

主要问题是 JPQL 不支持 window 函数,我不知道如何复制它们的行为...

分析函数是特定于供应商的。这使得很难用 CriteriaBuilder API 来实现。使用本机查询将您的 java 应用程序与特定的数据库供应商联系起来。 为避免这种情况,您可以创建一个特定于供应商的视图并在您的 java 应用程序中创建一个 select 并使用该视图 api 标准。

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