一、创建接口OrderDao
public interface OrderDao extends JpaSpecificationExecutor<Order>,JpaRepository<Order, Long> {}
二、实现类OrderServiceImpl的分页查询
public Page findAllByPage(Integer pageNum, Integer pageSize){
PageRequest pageRequest = PageRequest.of( pageNum,pageSize );
Page<Order> page = orderDao.findAll(pageRequest );
return page;
}
这里好像没有什么问题,但是如果分页关联查询就比较麻烦了,比如根据订单对象里的用户id查询用户的姓名或者手机号,你会发现Page对象只有一个getContent()方法,却没有set方法,仿佛分页对象Page是不可修改的,深入了解才知道它有一个map()方法,可进行关联查询操作,如下:
public Page findAllByPage(Integer pageNum, Integer pageSize){
PageRequest pageRequest = PageRequest.of( pageNum,pageSize );
Page<Order> page = orderDao.findAll(pageRequest );
Page<Order> map = page.map(order ->{
User user = userService.findById( order.getuId() );
if(user!=null){
order.setNickName( user.getNickName() );
}
return order;
});
return map;
}
这样分页对象里就包含了订单对象和用户昵称
关注我的微信公众号获取更多资源

本文介绍在SpringBoot中如何使用JpaRepository实现Order对象的分页查询,并通过Page对象的map方法完成订单与用户信息的关联查询,提高查询效率。
1134

被折叠的 条评论
为什么被折叠?



