我正在使用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方法。
任何帮助都是适当的,
感谢提前。
答案 0 :(得分:14)
Query q = em.createQuery("select e from SomeEntity e")
.setFirstResult(0)
.setMaxResults(10);
答案 1 :(得分:1)
无法做到。 JPQL操作实体,实体映射到数据库中的表。 db2中的行号是结果集中的概念,而不是数据库表中的概念。