JPA IN用法

 

 

 

 

 




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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值