inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

실전! Querydsl

조인 - 페치 조인

select()가 아닌 selectOne()을 사용하면 fetchJoin을 사용하지 못하나요?

해결된 질문

686

포닥

작성한 질문수 13

0

안녕하세요. 강의 잘 듣고 있습니다 :)

 

exists 기능을 구현하고 있는데, fetchJoin을 사용해봤습니다. 그저 데이터의 유무만 판단하면 됐기에 selectOne() 으로 조회를 했는데 실패하네요 ㅠㅠ 하지만 이후 fetchJoin()을 제거하니 잘 동작하는 모습을 확인했습니다.

// 성공하는 코드
@Override
public boolean existsByReviewEntity(ReviewEntity reviewCond) {
    final Integer result = queryFactory
        .selectOne()
        .from(reviewCommentEntity)
        .innerJoin(reviewCommentEntity.reviewEntity, reviewEntity)
        .where(reviewEq(reviewCond))
        .fetchFirst();
    return result != null;
}

// 실패하는 코드
@Override
public boolean existsByReviewEntity(ReviewEntity reviewCond) {
    final Integer result = queryFactory
        .selectOne()
        .from(reviewCommentEntity)
        .innerJoin(reviewCommentEntity.reviewEntity, reviewEntity).fetchJoin()
        .where(reviewEq(reviewCond))
        .fetchFirst();
    return result != null;
}

 

제 생각에는 두 가지 이유가 추측되는데요,

1. selectOne 이랑 fetchJoin의 실행 순서(?)

2. select 1 을 하면 특정 필드를 가져오는 것이 아니기 때문에 fetchJoin이 불가능(?)

 

열심히 구글을 찾아봐도 만족스러운 답을 찾지 못했고, 두루뭉실하게 의문만 남아있는 상태네요.. 

 

도움 주시면 감사하겠습니다 !!

짤막한 힌트도 좋습니다 :)

sql querydsl java JPA

답변 1

1

김영한

안녕하세요. 포닥님

fetch join은 엔티티를 대상으로 조회할 때만 가능합니다.

감사합니다.

0

포닥

감사합니다 !! 그걸 몰랐네요,..

SpringBoot 4.X에서의 Querydsl 설정

0

156

2

querydsl 오픈소스에 대한 질문

1

101

1

예제에서의 카운트 쿼리에서 join문과 where문은 필요없지 않나요?

0

127

1

Querydsl 6.X버전에 대해서 어떻게 생각하시나요?

0

348

2

여러 테이블 조인하여 통계치를 구하고자 할 때 어떤 방법이 더 효율적일까요

1

86

1

fetchResults()는 더이상 권장되지 않는다는데 맞나요?

0

172

1

querydsl sum() 메서드 없어요.

0

169

2

build 디렉터리 생성

0

152

2

자바 ORM 표준 JPA 프로그래밍 - 기본편 듣고 바로 학습해도 괜찮을까요?

0

122

2

현재 Querydsl에서 from절 서브쿼리를 지원하나요?

0

99

1

오타 제보 드립니다.

0

79

2

벌크 연산과 flush, clear

0

84

1

Run As Intellij 로 변경시 Q타입 import 불가

0

95

1

QHello import하기 문제 발생

0

157

2

등록된 함수 보는법(H2Dialect) 질문

0

76

2

5.0부터 Querydsl은 향후 fetchCount() , fetchResult() 를 지원하지 않기로 결정했다고 하는데 이에 맞는 강의

1

208

2

[환경설정 PDF 부트 3.0이후 설명 질문] build.gradle에 compileQuerydsl을 정의하지 않은 상태에서 Gradle->Tasks->other->compileQuerydsl을 클릭하라고 하는 이유가 무엇인가요??

1

213

1

querydsl 설정 문제

0

228

2

quey dsl 설정부분

0

168

2

count 쿼리 관련 질문입니다!

0

79

1

stringtemplate를 이용하여 where절 검색 방법 질문 드립니다.

0

98

1

답변부탁드리겠습니다.

0

95

2

(OrderSpecifier)관련 내용 어디있을가요

0

68

1

중급문법 벌크연산에서

0

85

2