From 721ecc0bff0d68db91bfee3358b7140befb4fee2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=98=89=E8=B1=AA?= <42510293+ziyujiahao@users.noreply.github.com> Date: Tue, 9 Sep 2025 14:13:40 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20Jpa=E9=80=82=E9=85=8D=20=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF=E9=97=AE=E9=A2=98=E4=BF=AE=E5=A4=8D=20(#16926)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../template/manage/TemplateCenterManage.java | 27 ++++++++++++------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/core/core-backend/src/main/java/io/dataease/template/manage/TemplateCenterManage.java b/core/core-backend/src/main/java/io/dataease/template/manage/TemplateCenterManage.java index a0daa6cf8c..73bed975d7 100644 --- a/core/core-backend/src/main/java/io/dataease/template/manage/TemplateCenterManage.java +++ b/core/core-backend/src/main/java/io/dataease/template/manage/TemplateCenterManage.java @@ -1,5 +1,6 @@ package io.dataease.template.manage; +import com.querydsl.core.types.Expression; import com.querydsl.core.types.Projections; import com.querydsl.core.types.dsl.Expressions; import com.querydsl.jpa.impl.JPAQuery; @@ -373,8 +374,7 @@ public class TemplateCenterManage { QVisualizationTemplate vt = QVisualizationTemplate.visualizationTemplate; QVisualizationTemplateCategoryMap vtcm = QVisualizationTemplateCategoryMap.visualizationTemplateCategoryMap; - JPAQuery query = queryFactory.select(Projections.fields( - TemplateManageDTO.class, + List> fields = Arrays.asList( vt.id, vt.name, vt.pid, @@ -384,16 +384,25 @@ public class TemplateCenterManage { vt.createBy, vt.createTime, vt.templateType, - vt.snapshot, - request.getWithBlobs().equals("Y") ? vt.templateStyle : Expressions.nullExpression(), - request.getWithBlobs().equals("Y") ? vt.templateData : Expressions.nullExpression(), - request.getWithBlobs().equals("Y") ? vt.dynamicData : Expressions.nullExpression() - )) + vt.snapshot + ); + + // 根据条件添加字段 + List> allFields = new ArrayList<>(fields); + if ("Y".equals(request.getWithBlobs())) { + allFields.add(vt.templateStyle); + allFields.add(vt.templateData); + allFields.add(vt.dynamicData); + } + + JPAQuery query = queryFactory.select(Projections.fields( + TemplateManageDTO.class, + allFields.toArray(new Expression[0]) + )) .from(vt) .leftJoin(vtcm).on(vt.id.eq(vtcm.templateId)) .where(vtcm.categoryId.eq(request.getCategoryId())) .orderBy(vt.createTime.desc()); - - return query.fetch(); + return query.fetch(); } }