登录 
欢迎来到陈冬冬(雪地里走)的学习天地 | 经验分享整理平台 | 陈冬冬
 服务器本次启动于:3个月前 

SpringBoot JPA实践之@Query查询之分页实现

2020-05-01 22:12:00 阅读:()

@Query注解提供了对分页的支持,通常的分页需要两个SQL,一个是查询count语句,一个是查询data语句,使用起来比较简单,直接最后一个参数传递pageable类型参数即可,至于是否使用可自行斟酌。

网络上有些资料里所述的使用特殊表达式“ORDER BY ?#{#pageable}”来实现分页,这种方式我在Oracle中也用过一次,印象中这种方式实现的分页查询在翻页至最后一页时,系统内部会打印输出一个错误信息的Log,不影响实际运行,本文中采用现时间的最新版本,下面为对应的具体实现。

代码实现

Repository

/**
 *
查询分页
 
*
 * @author chendd
 * @date 2020/5/2 21:22
 */
public interface UserQueryPageRepository extends BaseRepository<User, String> {

   
@Query(countQuery = "select count(*) from user" ,
           value =
"select a.* from user a where 1=1" ,
           nativeQuery =
true)
    Page<User> queryUsersPage(Pageable pageable);

}

Test

/**
 *
查询分页
 
*
 * @author chendd
 * @date 2020/5/2 21:28
 */
public class UserQueryPageTest extends ApplicationTest {

   
@Resource
   
private UserQueryPageRepository repository;

   
@Test
   
public void testQueryPage() {
        Pageable pageable = PageRequest.of(
0 , 5 , Sort.by(Sort.Order.asc("name")));
        Page<User> page =
repository.queryUsersPage(pageable);
        List<User> userList = page.getContent();
        Assert.assertNotNull(userList);
    }

}


你可能感兴趣的:
      关键字:pageable(7)user(6)page(4)public(3)query(3)
      互动()
      评论()
      比起点赞,站长更喜欢登录后的评论
      • 0
      • 0
      • 0
      • 0
      • 0