博主首页

jpa连表查询

复制代码
        JPAQuery<TSscPlanDayExecutePO> jpaQuery = jpaQueryFactory.selectFrom(planDayExecutePO)
                .leftJoin(tSscPlanDayPO).on(tSscPlanDayPO.id.eq(planDayExecutePO.objDayplan))
                .leftJoin(tSscListPlanPwExtendPO).on(tSscPlanDayPO.id.eq(tSscListPlanPwExtendPO.planId))
                .leftJoin(pwEngBasePO).on(tSscListPlanPwExtendPO.engId.eq(pwEngBasePO.engId));
        if(!StringUtils.isListEmpty(vo.getExcStatusList())){
            eq = eq.and(planDayExecutePO.excStatus.in(vo.getExcStatusList()));
        }
        if(StringUtils.isNotEmpty(vo.getKeyWord())){
            BooleanExpression contains = tSscPlanDayPO.code.contains(vo.getKeyWord());
            contains=contains.or(pwEngBasePO.engName.contains(vo.getKeyWord()));
            eq = eq.and(contains);
        }
        if (pwProDeptPO != null && "02".equals(pwProDeptPO.getProDeptType())) {
            eq = eq.and(tSscPlanDayPO.leadCode.eq(String.valueOf(loginSysStaffDto.getStaffId())));
        }
        if (StringUtils.isNotEmpty(vo.getWorkBeginDateStar())) {
            eq = eq.and(tSscPlanDayPO.workBeginDate.goe(vo.getWorkBeginDateStar()));
        }
        if (StringUtils.isNotEmpty(vo.getWorkBeginDateEnd())) {
            eq = eq.and(tSscPlanDayPO.workBeginDate.loe(vo.getWorkBeginDateEnd()));
        }
复制代码

 别的表排序

   jpaQuery=jpaQuery.where(eq).orderBy(tSscPlanDayPO.createdate.desc());

 jpa分组查询去重,自从到了mysql8.0就蛋疼了

复制代码
   QPwEngBasePO pwEngBasePOq = QPwEngBasePO.pwEngBasePO;
        JPAQuery<Tuple> distinct = jpaQueryFactory.select(pwEngBasePOq.engName
                        , pwEngBasePOq.engCode
                        , pwInvestmentPlanPOq.investmentPlanName
                        , tAsseDesignResultPOq.createDate.max()
                        , pwEngBasePOq.engId)
                .from(pwEngBasePOq)
                .leftJoin(pwProBasePOq).on(pwProBasePOq.proId.eq(pwEngBasePOq.proId))
                .leftJoin(pwInvestmentPlanPOq).on(pwProBasePOq.investmentPlanId.eq(pwInvestmentPlanPOq.investmentPlanId))
                .leftJoin(pwEngStatusPOq).on(pwEngStatusPOq.engId.eq(pwEngBasePOq.engId))
                .leftJoin(pwPlanDayPOq).on(pwPlanDayPOq.engId.eq(pwEngBasePOq.engId))
                .leftJoin(tAsseDesignResultPOq).on(pwEngBasePOq.engId.eq(tAsseDesignResultPOq.engId))
                .where(pwEngStatusPOq.milestonePhase.isNotNull())
                .orderBy(tAsseDesignResultPOq.createDate.max().desc())
                .groupBy(pwEngBasePOq.engId)
复制代码

 

posted @   笑~笑  阅读(482)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示