Java 将本机sql查询转换为JPA查询

Java 将本机sql查询转换为JPA查询,java,oracle,jpa,Java,Oracle,Jpa,我需要帮助在JPA查询中执行以下SQL查询,或者以某种方式使用JPA获取Oracle中的最后一条记录 SELECT * FROM (SELECT * FROM OAJ_COMITE ORDER BY ROWNUM DESC ) WHERE ROWNUM=1; 表示“如果没有order_by_子句,则无法保证多次执行的同一查询将以相同的顺序检索行”,因此您的内部查询没有任何意义 因此,如果您想根据某些条件获得最后一行,您应该使用如下表单 select*from table order by fi

我需要帮助在JPA查询中执行以下SQL查询,或者以某种方式使用JPA获取Oracle中的最后一条记录

SELECT * FROM (SELECT * FROM OAJ_COMITE ORDER BY ROWNUM DESC ) WHERE ROWNUM=1;
表示“如果没有order_by_子句,则无法保证多次执行的同一查询将以相同的顺序检索行”,因此您的内部查询没有任何意义

因此,如果您想根据某些条件获得最后一行,您应该使用如下表单
select*from table order by field desc fetch first row only
,其中
field desc
是您的排序参数


顺便说一句,我不确定是否可以将这样的查询转换为JPA,因为有使用Oracle特定的构造。因此,您需要使用“本机查询”,而不是JPA。

表中的行没有固有的顺序。您认为看到的任何明显的顺序都是数据存储的产物,数据库可以随时更改
orderbyrownumdesc
只意味着您将向后获得无序结果。那有什么意义呢?您可以很容易地说
按ROWNUM排序ASC
,取返回的第一行,结果同样有效。@BobJarvis,仅按ROWNUM排序根本无法使用-请参阅下面我的答案。