• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

중첩된 fetch join

20.02.06 23:36 작성 조회수 319

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 조인이 가능한가요 ?

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

감사합니다. 

답변 4

·

답변을 작성해보세요.

0

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

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

0

@Todo님의 프로필

@Todo

질문자

2020.02.08

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

0

@Todo님의 프로필

@Todo

질문자

2020.02.07

감사합니다. 

0

네 가능합니다!

다음처럼 하면 됩니다^^

from A a

join fetch a.b b

join fetch b.c c

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