2012-06-26 110 views
3

我正在使用as400 db2並試圖在JPQL中執行一個將從x行返回結果y的查詢。JPQL從select select row_number()over()

在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方法。

任何幫助將是appritiates,

感謝的在進展。

回答

0

這是不能做到的。 JPQL用於實體和實體映射到數據庫中的表。 db2中的行號是結果集中的概念,而不是數據庫表中的概念。

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

我怎樣才能找到歸檔的ROWNUM? @JB Nizet – verystrongjoe