从选择row_number()over()中选择JPQL

use*_*586 5 jpa jpql

我正在使用as400 db2并试图在JPQL中执行一个查询,该查询将从第x行返回结果到第y行.

在sql中这是我的代码(它运行良好):

select cur.* from (
  SELECT ROW_NUMBER() OVER() AS ROWNUM FROM tableName d) as cur
WHERE cur.ROWNUM > 0 AND cur.ROWNUM < 10
Run Code Online (Sandbox Code Playgroud)

如何将此SQL查询更改为JPQL?我在很多方面尝试过它,但每次我都遇到异常.

这样做的正确方法是什么?我想限制我的结果来自sql查询,而不是使用setMaxResult,setFirstResult方法.

任何帮助将是appritiates,

提前致谢.

JB *_*zet 13

Query q = em.createQuery("select e from SomeEntity e")
            .setFirstResult(0)
            .setMaxResults(10);
Run Code Online (Sandbox Code Playgroud)

  • 我如何获得提交的ROWNUM?@JB Nizet (6认同)
  • 呃,这显然不是OP想要的。 (3认同)

Mik*_*unu 4

那是不可能的。JPQL 操作实体,实体映射到数据库中的表。db2中的行号是结果集中的概念,而不是数据库表中的概念。