From 8411f7fa984fea7455eed3d64f2bbc77389e382d Mon Sep 17 00:00:00 2001 From: kwonhee1 Date: Tue, 14 Oct 2025 11:42:11 +0900 Subject: [PATCH] fix: main page project list api MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit left join tag when input tag is not null and only one issue #54 추가 수정 필요 (my page project list : view table) --- .../project/project/repository/ProjectDslRepository.java | 9 +++++---- .../demo/user/repository/UserProjectDslRepository.java | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/main/java/NextLevel/demo/project/project/repository/ProjectDslRepository.java b/src/main/java/NextLevel/demo/project/project/repository/ProjectDslRepository.java index fbbb989..743fede 100644 --- a/src/main/java/NextLevel/demo/project/project/repository/ProjectDslRepository.java +++ b/src/main/java/NextLevel/demo/project/project/repository/ProjectDslRepository.java @@ -26,16 +26,17 @@ public class ProjectDslRepository { public ResponseProjectListDto selectProjectDsl(RequestMainPageProjectListDto dto) { QProjectTagEntity projectTagEntity = new QProjectTagEntity("projectTagEntity"); SelectProjectListDslRepository.Builder builder = selectProjectRepository - .builder(dto.getUserId()) - .leftJoin(projectTagEntity, QProjectEntity.class, (project)->projectTagEntity.project.id.eq(project.id)); + .builder(dto.getUserId()); String search = dto.getSearch(); if(search != null && !search.isEmpty()) builder.where(QProjectEntity.class, (project)->whereSearch(project, dto.getSearch())); List tagIds = dto.getTagIds(); - if(tagIds != null && !tagIds.isEmpty()) - builder.where(null, (entity)->projectTagEntity.tag.id.in(dto.getTagIds())); + if(tagIds != null && !tagIds.isEmpty()) { + builder.leftJoin(projectTagEntity, QProjectEntity.class, (project)->projectTagEntity.project.id.eq(project.id)); + builder.where(null, (entity) -> projectTagEntity.tag.id.in(dto.getTagIds())); + } builder.where(QProjectEntity.class, (projectEntity) -> projectEntity.projectStatus.in(ProjectStatus.PROGRESS, ProjectStatus.STOPPED)); diff --git a/src/main/java/NextLevel/demo/user/repository/UserProjectDslRepository.java b/src/main/java/NextLevel/demo/user/repository/UserProjectDslRepository.java index eb04255..45c4dd2 100644 --- a/src/main/java/NextLevel/demo/user/repository/UserProjectDslRepository.java +++ b/src/main/java/NextLevel/demo/user/repository/UserProjectDslRepository.java @@ -68,7 +68,7 @@ private void where(SelectProjectListDslRepository.Builder builder, Long userId, builder = builder.leftJoin( view, QProjectEntity.class, - (project)->view.user.id.eq(userId).and(project.id.eq(view.project.id)) + (project)->view.user.id.eq(userId).and(project.id.eq(view.project.id)) // 수정 필요 -> 최신의 view만 left join 시킴 ); builder.where(null,entity->view.isNotNull()); builder.orderBy(null, entity->view.createAt.max().desc());