Skip to content

Commit

Permalink
🛠️ :: (#503) count 쿼리로 변경
Browse files Browse the repository at this point in the history
  • Loading branch information
jeongho1209 committed Jan 13, 2024
1 parent 0e45332 commit 87271f3
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ public interface QueryApplicationPort {

List<Application> queryApplicationsByIds(List<Long> applicationIds);

Long queryApplicationCountByIds(List<Long> applicationIds);

List<ApplicationDetailVO> queryApplicationDetailsByIds(List<Long> applicationIds);

Optional<Application> queryApplicationById(Long applicationId);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
import lombok.RequiredArgsConstructor;
import team.retum.jobis.common.annotation.UseCase;
import team.retum.jobis.domain.application.exception.ApplicationNotFoundException;
import team.retum.jobis.domain.application.model.Application;
import team.retum.jobis.domain.application.model.ApplicationStatus;
import team.retum.jobis.domain.application.spi.CommandApplicationPort;
import team.retum.jobis.domain.application.spi.QueryApplicationPort;
Expand All @@ -18,8 +17,9 @@ public class ChangeApplicationsStatusUseCase {
private final CommandApplicationPort commandApplicationPort;

public void execute(List<Long> applicationIds, ApplicationStatus status) {
List<Application> applications = queryApplicationPort.queryApplicationsByIds(applicationIds);
if (applicationIds.size() != applications.size()) {
Long applicationCount = queryApplicationPort.queryApplicationCountByIds(applicationIds);

if (applicationIds.size() != applicationCount.intValue()) {
throw ApplicationNotFoundException.EXCEPTION;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -183,6 +183,15 @@ public List<Application> queryApplicationsByIds(List<Long> applicationIds) {
.toList();
}

@Override
public Long queryApplicationCountByIds(List<Long> applicationIds) {
return queryFactory
.select(applicationEntity.count())
.from(applicationEntity)
.where(applicationEntity.id.in(applicationIds))
.fetchOne();
}

@Override
public List<ApplicationDetailVO> queryApplicationDetailsByIds(List<Long> applicationIds) {
return queryFactory
Expand Down

0 comments on commit 87271f3

Please sign in to comment.