博主首页

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)

 

toolAreaBaseDao.jpaQuery()
                .select(qToolArea.province,qToolArea.id.max())
                .orderBy(qToolArea.id.max().asc())
                .groupBy(qToolArea.province)

 

posted @ 2023-01-16 16:56  笑~笑  阅读(494)  评论(0)    收藏  举报