分享

JPA IN用法...

 lichwoo 2022-10-27 发布于北京
public Page<ConsignmentV> getList(String orgFirstId,String orgSecondId, String beginDate,String endDate,Integer page, Integer size,Integer status,String state) {
        Specification<ConsignmentV> specification = new Specification<ConsignmentV>() {
            @Override
            public Predicate toPredicate(Root<ConsignmentV> root, CriteriaQuery<?> criteriaQuery, CriteriaBuilder criteriaBuilder) {
                List<Predicate> predicateList = new ArrayList<>();
//-----------------这两种都可以
//                Expression<String> exp = root.<String>get("state");
//                String strs[] = state.split(",");
//                List<String> lds = Arrays.asList(strs);
//                if( lds != null || lds.size() > 0 )  predicateList.add(exp.in(lds));
                String strs[] = state.split(",");
                CriteriaBuilder.In<String> in = criteriaBuilder.in(root.get("state"));
                for (String id : strs) {
                    in.value(id);
                }
                predicateList.add(in);
                // predicateList.add(criteriaBuilder.equal(root.get("orgFirstId").as(String.class),groupId  ));
                if (StringUtils.isNotBlank(orgFirstId)) {
                    predicateList.add(criteriaBuilder.equal(root.get("orgFirstId").as(String.class),orgFirstId  ));
                }
                if (StringUtils.isNotBlank(orgSecondId)) {
                    predicateList.add(criteriaBuilder.equal(root.get("orgSecondId").as(String.class),orgSecondId  ));
                }
                if (StringUtils.isNotBlank(beginDate) ) {
                    predicateList.add(criteriaBuilder.greaterThanOrEqualTo(root.get("beginDate").as(String.class), beginDate));
                }
                if (StringUtils.isNotBlank(endDate)  ) {
                    predicateList.add(criteriaBuilder.lessThanOrEqualTo(root.get("endDate").as(String.class), endDate));
                }
                if (status != null ) {
                    predicateList.add(criteriaBuilder.equal(root.get("status").as(Integer.class), status));
                }
                return criteriaBuilder.and(predicateList.toArray(new Predicate[predicateList.size()]));
            }
        };
        PageRequest pageRequest = PageRequest.of(page, size, Sort.by(Sort.Direction.DESC, "id"));
        Page<ConsignmentV> all = consignmentVRespository.findAll(specification, pageRequest);
        List<ConsignmentV> list = all.getContent();
        for (ConsignmentV obj : list) {
            //查用户服务是到服务商名称和手,后续接口可以返回多条数据,而不是一条条返回
//            R r = userClient.getOrgAndCreateUser(obj.getOrgSecondId());
//            UserInfoDto userInfoDto = JSON.parseObject(JSON.toJSONString(r.get("data")),UserInfoDto.class);
            UserInfoDto userInfoDto  = userServer.getOrgAndCreateUser(obj.getOrgSecondId()).getData();
            obj.setOrgName(userInfoDto.getOrgName());
            obj.setName(userInfoDto.getName());
            obj.setMobile(userInfoDto.getMobile());
            //放协议附件id
            obj.setFileId("990f7360-a3e7-4f8f-a55f-f0600a58c604");
        }
        return all;
    }

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多