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

时间:2012-06-26 11:37:39

标签: 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

如何将此SQL查询更改为JPQL?我在很多方面尝试过它,但每次我都有例外。

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

任何帮助都是适当的,

感谢提前。

2 个答案:

答案 0 :(得分:14)

Query q = em.createQuery("select e from SomeEntity e")
            .setFirstResult(0)
            .setMaxResults(10);

答案 1 :(得分:1)

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