강의

멘토링

로드맵

Inflearn Community Q&A

yeonggonha1959's profile image
yeonggonha1959

asked

Practice! Querydsl

중첩된 fetch join

Written on

·

520

0

안녕하세요

fetch 조인 문의가 있습니다. 

class A {
@ManyToOne
private B b;

@ManyToOne
private D d;
}

class B {
@ManyToOne
private C c;
}

class C {
...
}

class D {
...
}

A클래스를 조회하면서 관련된 연관관계인 B, C, D 를 모두 한번에 fetch 조인이 가능한가요 ?

안된다면 이런경우를 어떻게 해결하는지 문의 드립니다. 

감사합니다. 

javaJPA

Answer 4

0

yh님의 프로필 이미지
yh
Instructor

기본적으로 EntityGraph는 JPA가 제공하는 것인데, 스프링 데이터 JPA에서 이것을 편리하게 사용하게 도와줍니다. EntityGraph는 하나이상의 하위 fetch join이 가능합니다.

그런데 하나 이상의 하위레벌이 들어가면 이미 조인쿼리가 너무 복잡해지기 때문에 최적화가 어려울 수 있습니다. 따라서 @EntityGraph를 쓰기 보다는 명시적으로 fetch join을 사용하는 것을 권장합니다.

0

yeonggonha1959님의 프로필 이미지
yeonggonha1959
Questioner

Spring data jpa에서 @EntityGraph 를 통해서도 하나이상의 하위레벨의 fetch join이 가능한가요 ?

0

yeonggonha1959님의 프로필 이미지
yeonggonha1959
Questioner

감사합니다. 

0

yh님의 프로필 이미지
yh
Instructor

네 가능합니다!

다음처럼 하면 됩니다^^

from A a

join fetch a.b b

join fetch b.c c

활용 2편에 이 내용을 매우 자세히 다루고 있으니 참고해주세요^^

yeonggonha1959's profile image
yeonggonha1959

asked

Ask a question