188 Star 768 Fork 170

GVPNutz / nutz

 / 详情

希望Cnd 能添加 join 查询 类似hibernate

待办的
任务
创建于  
2020-11-06 09:43

希望Cnd 能添加 join 查询 类似hibernate 酱紫
Join<ContractDetail, ContractBase> contractBaseJoin = root.join("contractBase", JoinType.LEFT);
predicates.add(criteriaBuilder.equal(contractBaseJoin.get("dataTransferFlag"), DataTransferFlagEnum.FLAG_COMPLETED.getCode()));
如果可以的话 希望 Cnd order by 也能join 排序


    @Override
    public Map<String, Object> queryAll(ContractSearch search, Pageable pageable) {
        Page<ContractDetail> page = ContractDetailRepository.findAll((Specification<ContractDetail>) (root, criteriaQuery, criteriaBuilder) -> {
                    List<Predicate> predicates = new LinkedList<>();
                    //合同物数据物权转移 完成的查询
                    Join<ContractDetail, ContractBase> contractBaseJoin = root.join("contractBase", JoinType.LEFT);
                    predicates.add(criteriaBuilder.equal(contractBaseJoin.get("dataTransferFlag"), DataTransferFlagEnum.FLAG_COMPLETED.getCode()));
                    Optional<ContractSearch> optional = Optional.ofNullable(search);
                    // 根据 ContractDetail contractNo 查询
                    optional.map(ContractSearch::getContractNo).ifPresent(id -> {
                        predicates.add(criteriaBuilder.equal(root.get("contractNo"), id));
                    });
                    // 根据 ContractDetail brandCode 查询
                    optional.map(ContractSearch::getBrandCode).ifPresent(brandCode -> {
                        predicates.add(criteriaBuilder.equal(root.get("brandCode"), brandCode));
                    });
                    // 根据 ContractDetail contractDate 查询
                    if (optional.map(ContractSearch::getContractDate).isPresent()) {
                        predicates.add(criteriaBuilder.between(
                                contractBaseJoin.get("contractDate"),
                                search.getContractDate().get(0),
                                search.getContractDate().get(1))
                        );
                    }
                    Predicate[] array = new Predicate[predicates.size()];
                    return criteriaBuilder.and(predicates.toArray(array));
                }, pageable);
        page.get().forEach(cd -> {
            ContractDetailDto contractDetailDto = contractBrandCodeAvailable(cd.getContractNo(),cd.getBrandCode());
            cd.setDetailSumNum(contractDetailDto.getDetailSumNum());
            cd.setOrderSumNum(contractDetailDto.getOrderSumNum());
            cd.setAvai(contractDetailDto.getAvai());
        });
        return PageUtil.toPage(page.map(ContractDetailMapper::toDto));
    }

评论 (0)

TomYule 创建了任务
TomYule 关联仓库设置为Nutz/nutz
TomYule 修改了描述
TomYule 修改了描述
展开全部操作日志

登录 后才可以发表评论

状态
负责人
项目
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
预计工期 (小时)
参与者(1)
993890 tomyule 1578937733
Java
1
https://gitee.com/nutz/nutz.git
git@gitee.com:nutz/nutz.git
nutz
nutz
nutz

搜索帮助