springBoot + date-jpa 后台带查询条件急速分页教程
因为是自己做笔记,所以话不多说,直接看代码
做了个承载分页属性的实体
import java.io.Serializable;
import lombok.Data;
@Data
public class PageEntity implements Serializable{
protected int page=1;
protected int size=20;
protected String sidx="id";
}
我用的spring-date-jpa
直接看action层
//分页
@RequestMapping("/cutpage")
public List<Orders> cutpage(@RequestParam("page") int page){
PageEntity or =new PageEntity();
or.setSize(2);
or.setPage(page);
//不带排序
PageRequest pq=new PageRequest(or.getPage()-1,or.getSize());
Specification spec = (Specification<Orders>) (root, criteriaQuery, criteriaBuilder) -> {
List<Predicate> predicates = new ArrayList<>();
//添加条件userid=123,number like 1
predicates.add(criteriaBuilder.equal(root.get("userid"), 123));
predicates.add(criteriaBuilder.like(root.get("number"), "%" + "1" + "%"));
return criteriaBuilder.and(predicates.toArray(new Predicate[predicates.size()]));
};
//带条件分页
Page PagefindAll = orderSrtvice.findAll(spec,pq);
//不带条件
Page<Orders> findAll = orderSrtvice.findAll(pq);
//根据 id进行排序
/* Sort.Direction sort_direction = Sort.Direction.ASC.toString().equalsIgnoreCase(or.getSidx()) ? Sort.Direction.ASC : Sort.Direction.DESC;
PageRequest pqSort=new PageRequest(or.getPage()-1,or.getSize(),sort_direction);
Page<Orders> findSort = orderSrtvice.findAll(pqSort);
*/
return findAll.getContent();
}
搞定收工,PageRequest 是boot已经封装好的 分页工具,然后就是 用该po的service去执行date-jpa的findAll 方法,至于我传的参数page实际就是 第几页的参数
还没有评论,来说两句吧...