首页 > 其他 > 详细

JPA常用

时间:2020-07-14 15:56:01      阅读:36      评论:0      收藏:0      [点我收藏+]
@Override
    public Page<SapOrder> findPage(SapOrderModel sapOrderModel, int currentPage, int pageSize) {
        Specification<SapOrder> specification = new Specification<SapOrder>() {

            @Override
            public Predicate toPredicate(Root<SapOrder> root, CriteriaQuery<?> query,
                                         CriteriaBuilder cb) {
                List<Predicate> list = new ArrayList<>();

                Predicate deleteMark = cb.equal(root.get("deleteMark").as(Boolean.class), false);
                list.add(deleteMark);


                if(!CommonUtil.isEmpty(sapOrderModel.getSapSaler())){
                    List<Long>  salerIds = sapSearchMapper.getSalerIds(sapOrderModel.getSapSaler().trim());
                    if(salerIds != null && salerIds.size() > 0) {
                        CriteriaBuilder.In<Long> in = cb.in(root.get("sapSaler"));
                        for (Long id : salerIds) {
                            in.value(id);
                        }
                        list.add(in);
                    }

                }
                if(!CommonUtil.isEmpty(sapOrderModel.getStartTime()) && !CommonUtil.isEmpty(sapOrderModel.getEndTime())){
                    //起始日期
                    Predicate startTime =  cb.greaterThanOrEqualTo(root.get("docDate").as(String.class), sapOrderModel.getStartTime());
                    list.add(startTime);
                    //结束日期
                    Predicate endTime =  cb.lessThanOrEqualTo(root.get("docDate").as(String.class), sapOrderModel.getEndTime());
                    list.add(endTime);

                }


                if (!CommonUtil.isEmpty(sapOrderModel.getuXsxz())) {
                    Predicate uXsxz = cb.like(root.get("uXsxz"), "%" + sapOrderModel.getuXsxz() + "%");
                    list.add(uXsxz);
                }
                if (!CommonUtil.isEmpty(sapOrderModel.getSapCustom())) {
                    Predicate sapCustom = cb.like(root.get("sapCustom"), "%" + sapOrderModel.getSapCustom() + "%");
                    list.add(sapCustom);
                }



                Predicate[] predicates = new Predicate[list.size()];

                return cb.and(list.toArray(predicates));
            }


        };
        //排序
        List<Sort.Order> orders = new ArrayList<>();

        orders.add(new Sort.Order(Sort.Direction.ASC, "createDate"));
        Sort sort = Sort.by(orders);
        Pageable pageable = PageRequest.of(currentPage - 1, pageSize, sort);
        return sapOrderRepository.findAll(specification, pageable);
    }

 

JPA常用

原文:https://www.cnblogs.com/bbllw/p/13299243.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!