2015-10-20 66 views
0

我喜歡這個如何使用Spring Data @query註釋從mysql數據庫中僅提取80行?

@Query("select cnt from Content cnt order by 
CASE WHEN cnt.status = 'rejected' THEN '1' 
WHEN cnt.status = 'modified' ELSE cnt.status END ASC") 

查詢如何添加限制0,100行加我query

我寫了下面的格式,但所有行database獲取

@Query("select cnt from Content cnt 
    order by CASE WHEN cnt.status = 'rejected' THEN '1' 
    WHEN cnt.status = 'modified' ELSE cnt.status END ASC limit 0,100") 

回答

3

我寫了一個答案,一個類似的帖子here。在你的情況下,查詢將是你寫的第一個,但你必須傳遞一個Pageable對象作爲參數。假設您閱讀鏈接的答案,並且知道您的存儲庫應該延伸JpaRepositoryPagingAndSortingRepository,它看起來像這樣:

@Query("select cnt from Content cnt 
     order by CASE WHEN cnt.status = 'rejected' THEN '1' 
     WHEN cnt.status = 'modified' ELSE cnt.status END ASC") 
public List<Content> getContents(Pageable pageable); 
0

您可以使用分頁(這是可以在JPA以及在Hibernate作爲JPA提供者)

休眠

Query query = session.createQuery("..YOUR QUERY HERE..."); 
query.setFirstResult(0); 
query.setMaxResults(100); 
List<Content> contentList = query.list(); 

JPA Query還支持setFirstResultsetMaxResults方法。

0

使用:

@Query("....") 
List<Object> countLimited(..., Pageable pageable); 
相關問題