spring data jpa 分页查询

来源:互联网 发布:php走势图源码 编辑:程序博客网 时间:2024/05/22 07:56
 /**     * 项目分页  不带条件     * @author lm     * @createTime 2017年8月5日12:51:13     * @param pageable     * @return     */    @Transactional(Transactional.TxType.NOT_SUPPORTED)    public Page<Project> projectPageNoCriteria(Pageable pageable) {        return projectRepository.findAll(pageable);    }    /**     * 项目分页  带条件     * @author lm     * @createTime 2017年8月5日12:51:13     * @param pageable     * @return     */    @Transactional(Transactional.TxType.NOT_SUPPORTED)    public Page<ProjectUser> projectPageCriteria(Pageable pageable, Project project) {        Page<Project> projectPage = projectRepository.findAll(new Specification<Project>() {            @Override            public Predicate toPredicate(Root<Project> root, CriteriaQuery<?> query, CriteriaBuilder criteriaBuilder) {                List<Predicate> list = new ArrayList<>();                if (null != project.getCompanyName() && !"".equals(project.getCompanyName())) {                    list.add(criteriaBuilder.like(root.get("companyName").as(String.class), "%" + project.getCompanyName() + "%"));                }                Predicate[] p = new Predicate[list.size()];                return criteriaBuilder.and(list.toArray(p));            }        }, pageable);        return projectPage;    }