Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Hibernate标准API中使用行号(或具有相同行为的任何东西)?_Java_Hibernate_Jpa_Window Functions_Criteria Api - Fatal编程技术网

Java 如何在Hibernate标准API中使用行号(或具有相同行为的任何东西)?

Java 如何在Hibernate标准API中使用行号(或具有相同行为的任何东西)?,java,hibernate,jpa,window-functions,criteria-api,Java,Hibernate,Jpa,Window Functions,Criteria Api,我想用CriteriaBuilder API实现类似的查询: SELECT*,按学生分数排序,第行编号()为RowNumberRank 来自学生分数 主要问题是JPQL不支持窗口函数,我不知道如何复制它们的行为…分析函数是特定于供应商的。这使得CriteriaBuilderAPI很难实现。使用本机查询将java应用程序绑定到特定的数据库供应商。 为了避免这种情况,您可以创建特定于供应商的视图,并使用该视图在java应用程序中创建一个带有条件api的select 除了您已经拥有的StudentS

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

SELECT*,按学生分数排序,第行编号()为RowNumberRank
来自学生分数

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

分析函数是特定于供应商的。这使得CriteriaBuilderAPI很难实现。使用本机查询将java应用程序绑定到特定的数据库供应商。 为了避免这种情况,您可以创建特定于供应商的视图,并使用该视图在java应用程序中创建一个带有条件api的select


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

分析函数是特定于供应商的。这使得CriteriaBuilderAPI很难实现。使用本机查询将java应用程序绑定到特定的数据库供应商。 为了避免这种情况,您可以创建特定于供应商的视图,并使用该视图在java应用程序中创建一个带有条件api的select


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

我知道本机查询是可行的,但这是一个非常错误的解决方案……您不知道。正如您所说,本机查询是您唯一的解决方案,因为criteria API只提供所有数据库系统都具有的通用函数,如联接、where子句、sum、avg等。不支持特定于供应商的函数我已经看到,但我不确定如何转换我的查询。我知道使用本机查询是可能的,但这是一个非常错误的解决方案…你不知道。正如您所说,本机查询是您唯一的解决方案,因为criteria API只提供所有数据库系统都具有的通用函数,如联接、where子句、sum、avg等。不支持特定于供应商的函数。我已经看到了这一点,但我不确定如何转换查询。