5

AS / 400でDb2を使用しており、行xから行yに結果を返すJPQLクエリを実行しようとしています。

SQLではこれは機能します:

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

JQPLでこれを行うにはどうすればよいですか?いろいろ試してみましたが、例外が発生するたびに。

setMaxResult、setFirstResultメソッドを使用するのではなく、クエリ内で結果を制限したいと思います。

4

2 に答える 2

13
Query q = em.createQuery("select e from SomeEntity e")
            .setFirstResult(0)
            .setMaxResults(10);
于 2012-06-26T11:41:12.380 に答える
1

それはできません。JPQLはエンティティに対して動作し、エンティティはデータベース内のテーブルにマップされます。db2の行番号は、データベース表ではなく、結果セットの概念です。

于 2012-06-26T11:54:03.583 に答える