我想知道使用JPA獲取表的最後一個條目的最佳方式是什麼。 在SQL中,我正在尋找的是這樣的:JPA找到最後一個條目
select id from table order by id desc limit 1
我在想model.count(),但聽起來更像是一個黑客不是一個很好的解決方案;)
我想知道使用JPA獲取表的最後一個條目的最佳方式是什麼。 在SQL中,我正在尋找的是這樣的:JPA找到最後一個條目
select id from table order by id desc limit 1
我在想model.count(),但聽起來更像是一個黑客不是一個很好的解決方案;)
你可以使用與查詢非常相似的JPQL查詢。
select t from JpaClass t order by t.id desc
您建立查詢對象後,你可以再調用query.getSingleResult()或致電query.setMaxResults(1),其次是query.getResultList()
編輯:我的錯誤:請注意mtpettyp的評論下面。
不要使用query.getSingleResult()作爲一個例外可能會被拋出,如果 不是正好有一個返回行 - 看java.sun.com/javaee/5/...() - mtpettyp
轉到setMaxResults和getResultList。
query.setMaxResults(1).getResultList();
的查詢方法的結果可以通過關鍵字第一或頂部,其可被互換地使用受到限制。一個可選的數字值可以被附加到top/first,以指定要返回的最大結果大小。如果該數字被忽略,則假定結果大小爲1。
JpaClass findFirstByOrderByIdDesc();
如果不是正好有一個返回行,不要使用query.getSingleResult()作爲一個例外可能會被拋出 - 見http://java.sun.com/javaee/5/文檔/ API /的javax /持久/ Query.html#getSingleResult() – mtpettyp 2010-01-14 14:42:33