2015-10-20 65 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); 
相关问题