2014-02-21 67 views
1

我有一個查詢,我想限制結果集的大小。由於JPA不支持「LIMIT」,我一直在努力制定正確的方法。我曾嘗試過:使用@Query偏移限制結果集

@Query("SELECT w FROM WardTransaction w WHERE w.visit = :visit ORDER BY w.admissionDateTime DESC").setMaxResults(1) 
public WardTransaction findCurrent(@Param("visit") Visit visit); 

這是不正確的。我只是在尋找正確語法的一些指導。

我的倉庫代碼:

回答

3
@Query("SELECT w FROM WardTransaction w WHERE w.visit = :visit ORDER BY w.admissionDateTime DESC") 

以上是查詢方法定義,在查詢中setMaxResult您需要使用可分頁的對象,因爲它遵循。

​​

JPA存儲庫,因爲它遵循>

Pageable pageSpecification = PageRequest(int page, int size) 

法相結合的可分頁和SimpleJpaRepository是解決必須實現SimpleJpaRepository

設置可分頁對象。

看看here

如果您正在使用的EntityManager和NamedQueries,也適用於查詢對象的方法setMaxResult,但它是一個不同的故事。

+0

其實,我有一個存儲庫類 - 我不知道這是否有幫助?我會看看參考.. – skyman

+0

是的,你正在應用方法上面的@Query,嘗試改變我對SimpleJpa和Pageable的推薦 – Koitoer