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());