QueryDSL自定義實體映射,Predicate多條件查詢

 @Override
    public List<ProjectStatusDTO> getProjectStatus(Long departId) {
        QProject qProject = QProject.project;
        Predicate predicate = qProject.isNotNull().or(qProject.isNull());
        predicate = StringUtils.isEmpty(departId) ? predicate : ExpressionUtils.and(predicate, qProject.departId.eq(departId));

        List<ProjectStatusDTO> projectStatusDTOList = jpaQueryFactory.select(
                Projections.bean(
                        ProjectStatusDTO.class,
                        qProject.status,
                        qProject.id.count().as("count")
                )
        )
                .from(qProject)
                .where(predicate)
                .groupBy(qProject.status)
                .fetch();
        return projectStatusDTOList;
    }

核心代碼:

 Projections.bean(
                        ProjectStatusDTO.class,
                        qProject.status,
                        qProject.id.count().as("count")
                )

注意點:

如果實體中的字段屬性和自定義的對象的屬性不一樣,請使用   .as("自定義對象中的屬性名稱") 

發佈了124 篇原創文章 · 獲贊 18 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章