inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

실전! Querydsl

쿼리 dsl fetch join에 대해서 여쭤보고 싶습니다.

352

남기석

작성한 질문수 12

1

안녕하세요 선생님.

배운내용을 더 잘 알고싶어서 이것저것 복습해보다 보니 자꾸 질문을 하게되네요 ㅎㅎ;;

쿼리 dsl을 이전 활용편에선 다룬 예제에 적용시켜보려다 자꾸 오류가 나서 질문을 남깁니다.

@Override
public List<OrderDto> search() {
List<OrderDto> dtos = queryFactory
.select(Projections.constructor(OrderDto.class,
order.id, member.username, order.orderDate, order.status, delivery.address,
order.orderItems))
.from(order)
.join(order.member, member).fetchJoin()
.join(order.delivery, delivery).fetchJoin()
.join(order.orderItems, orderItem).fetchJoin()
.join(orderItem.item,item).fetchJoin()
.fetch();
return dtos;

} 

   .join(orderItem.item,item).fetchJoin()

이 부분이 잘못된것같은데 어떻게 처리를 해야하는것인지 감이 안잡히네요.

"select distinct o from Order o join fetch o.delivery join fetch o.member" +
" join fetch o.orderItems oi join fetch oi.item"

위 쿼리를  쿼리dsl로 해볼려고 했습니다.

추가로 join을 한 줄로 처리할 수도 있는지 여쭤보고 싶습니다.

혹시 질문이 이상하거나 애매모호하다면 알려주시면 감사하겠습니다!

java JPA

답변 3

1

김영한

크! 이문제를 스스로 해결했다니, 잘하셨습니다!

1

남기석

감사합니다.

새벽에 활용편 자료보면서 해결했었는데 질문을 안지웠네요.

그래도 덕분에 제대로 기억할 수 있을것같습니다!

0

김영한

안녕하세요. 기석님^^

fetch join 자체가 엔티티의 객체 그래프를 조회할 때 사용하는 기능입니다. 따라서 fetch join을 사용하려면 엔티티로 조회해야 합니다^^! DTO로 조회하는 것이 불가능합니다.

DTO로 풀어서 조회하려면 fetch join 대신에 일반 join을 사용하셔야 합니다.

활용2편을 떠올려주세요^^!

감사합니다.

SpringBoot 4.X에서의 Querydsl 설정

0

84

2

querydsl 오픈소스에 대한 질문

0

69

1

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

0

108

1

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

0

316

2

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

1

68

1

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

0

159

1

querydsl sum() 메서드 없어요.

0

157

2

build 디렉터리 생성

0

135

2

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

0

113

2

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

0

90

1

오타 제보 드립니다.

0

70

2

벌크 연산과 flush, clear

0

76

1

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

0

87

1

QHello import하기 문제 발생

0

147

2

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

0

68

2

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

1

195

2

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

1

200

1

querydsl 설정 문제

0

222

2

quey dsl 설정부분

0

157

2

count 쿼리 관련 질문입니다!

0

75

1

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

0

89

1

답변부탁드리겠습니다.

0

89

2

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

0

64

1

중급문법 벌크연산에서

0

81

2