diff --git a/src/main/java/com/coverflow/company/infrastructure/CompanyRepository.java b/src/main/java/com/coverflow/company/infrastructure/CompanyRepository.java index bfa14308..56503b23 100644 --- a/src/main/java/com/coverflow/company/infrastructure/CompanyRepository.java +++ b/src/main/java/com/coverflow/company/infrastructure/CompanyRepository.java @@ -18,6 +18,7 @@ public interface CompanyRepository extends JpaRepository, Company @Query(""" SELECT c FROM Company c + JOIN FETCH c.questions WHERE c.id = :companyId AND c.companyStatus = 'REGISTRATION' """) diff --git a/src/main/java/com/coverflow/question/infrastructure/QuestionCustomRepositoryImpl.java b/src/main/java/com/coverflow/question/infrastructure/QuestionCustomRepositoryImpl.java index 98f0425d..e43d4ff5 100644 --- a/src/main/java/com/coverflow/question/infrastructure/QuestionCustomRepositoryImpl.java +++ b/src/main/java/com/coverflow/question/infrastructure/QuestionCustomRepositoryImpl.java @@ -64,6 +64,7 @@ public Optional> findRegisteredQuestionsById( CompletableFuture> questionsFuture = CompletableFuture.supplyAsync(() -> jpaQueryFactory .selectFrom(question) + .leftJoin(question.answers).fetchJoin() .where( question.company.id.eq(companyId), question.questionStatus.eq(true), @@ -72,6 +73,7 @@ public Optional> findRegisteredQuestionsById( .offset(pageable.getOffset()) .limit(pageable.getPageSize()) .orderBy(makeOrderSpecifiers(question, pageable)) + .distinct() .fetch() ); diff --git a/src/main/java/com/coverflow/question/infrastructure/QuestionRepository.java b/src/main/java/com/coverflow/question/infrastructure/QuestionRepository.java index 2c1d3fe1..f051f212 100644 --- a/src/main/java/com/coverflow/question/infrastructure/QuestionRepository.java +++ b/src/main/java/com/coverflow/question/infrastructure/QuestionRepository.java @@ -17,6 +17,7 @@ public interface QuestionRepository extends JpaRepository, Quest @Query(""" SELECT q FROM Question q + JOIN FETCH q.answers WHERE q.member.id = :memberId AND q.questionStatus = true ORDER BY q.createdAt DESC @@ -29,6 +30,7 @@ Optional> findRegisteredQuestionsByMemberId( @Query(""" SELECT DISTINCT q FROM Question q + JOIN FETCH q.answers WHERE q.id = :questionId AND q.questionStatus = true """)