6

I'm using Db2 on AS/400, and I am trying to execute a JPQL query that will return results from row x to row y.

In SQL this works:

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

How can I do this in JQPL? I tried it in many ways but every time I got an exception.

I want to limit my result inside the query, and not by using the setMaxResult, setFirstResult methods.

sleske
  • 81,358
  • 34
  • 189
  • 227
user590586
  • 2,960
  • 16
  • 63
  • 96

2 Answers2

12
Query q = em.createQuery("select e from SomeEntity e")
            .setFirstResult(0)
            .setMaxResults(10);
JB Nizet
  • 678,734
  • 91
  • 1,224
  • 1,255
4

That cannot be done. JPQL operates to entities and entities are mapped to tables in database. Row number in db2 is concept in result set, not in database table.

Mikko Maunu
  • 41,366
  • 10
  • 132
  • 135