• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

querydsl 의존관계 없는 left join 문의

22.04.29 21:07 작성 조회수 613

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

은목님의 프로필

은목

2023.07.20

혹시 해결되셨나요?

0

안녕하세요. ljd109님

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

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

감사합니다.

hwajo0님의 프로필

hwajo0

2022.06.22

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

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