인프런 커뮤니티 질문&답변

ljd109님의 프로필 이미지
ljd109

작성한 질문수

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

querydsl 의존관계 없는 left join 문의

작성

·

890

1

안녕하세요!

실무에서 jpa를 쓰게 되서 강사님의 책과 강의를 번갈아 보면서 열심히 개발하던 중에 궁금한 점이 있어 문의드립니다.

쓰다보니 query dsl이 참 편하더라구요!

그런데 연관관계 없는 두 개 entity를 조인해서 데이터를 조회해오고 싶은데,

아래와 같이 쿼리를 작성하니 실행 중에 QuerySyntaxException이 발생합니다.

 

List<HistoryDto> historyList = queryFactory
.select(Projections.fields(HistoryDto.class,
pmntHistoryEntity.approvalNo,
pmntHistoryEntity.approvalDate,
pmntHistoryEntity.cancelType,
pmntHistoryEntity.trxId,
pmntHistoryEntity.trxReqDate,
creditCardEntity.cardName,
creditCardEntity.cardNumber
))
.from(pmntHistoryEntity)
.leftJoin(creditCardEntity).on(pmntHistoryEntity.cardToken.eq(creditCardEntity.cardToken))
.where(
eqUserId(dto.getUserId()),
eqOrderId(dto.getOrderId())
)
.fetch();

exception = QuerySyntaxException: begin 0, end -1, length 19 

 

queryDsl에서 연관 관계 없어도 on 절을 통해 join이 가능한 것으로 알고 있는데 projection과 호환이 안되는 걸까요?

하루종일 구글링을 해도 나오질 않네요.. 혹시 알고 계시다면 답변 부탁드립니다 ㅠ_ㅠ

답변 2

0

혹시 해결되셨나요?

0

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. ljd109님

조인 문법이 잘못되었습니다.

JPQL의 조인 문법을 다시 공부해보시면 이해가 되실거에요.

감사합니다.

안녕하세요! ㅠㅠ 봐도 잘 모르겠는데 혹시 힌트 좀 주실 수 있을까요?

김영한님의 프로필 이미지
김영한
지식공유자

leftJoin(creditCardEntity) 이 부분이 잘못되었습니다.

ljd109님의 프로필 이미지
ljd109

작성한 질문수

질문하기