-
@EntityGraph 사용법SPRING/JPA 2021. 12. 6. 19:34반응형
EntityGraph는
페치 조인(FETCH JOIN)의 간편 버전이라고 생각하면 됩니다.
EntityGraph의 4가지 사용법을 알아보겠습니다.
[ 이전 글(페치조인 설명)을 꼭 참고해주세요. ]
저번 시간에 이어 먼저 MemberRepository를 살펴보겠습니다.
첫 번째 방법
27라인을 보시면 엔티티 그래프가 추가 되었습니다.
이전과는 달리 [ @Query("...") 페치 조인을 위한 JPQL쿼리를 ] 짜지 않고 @EntityGraph를 이용하여 페치 조인을 사용할 수 있습니다.바로 테스트해보겠습니다.
결과
이전 페치조인과 동일한 결과를 얻을 수 있습니다.
두 번째 방법
31라인을 보시면 엔티티 그래프 사용 두 번째가 추가되었습니다.
이번에는 JPQL과 엔티티 그래프를 같이 사용하는 방법입니다.테스트
결과
세번째 방법
36라인을 보시면 엔티티 그래프가 되었습니다.
이번에는 메서드 이름으로 쿼리를 조회해오는 기능을 사용하였습니다. (잘 모르신다면 https://kihwan95.tistory.com/5 참고해주세요.)테스트
결과
네번째 방법(NamedEntityGraph 사용)
이번에는 Member엔티티에 속성을 추가해야 합니다.
20라인 -@NamedEntityGraph(name ="Member.findAllBy", attributeNodes = @NamedAttributeNode("team")) //추가
41라인을 보시면 엔티티 그래프가 되었습니다.
테스트
결과
지금까지 페치 조인과 같은 역할을 하는 @EntityGraph를 알아보았습니다.
그런데 @EntityGraph는 left join만 지원합니다.
그래서 다른 방식이 필요하면 JPQL을 작성하고 fetch join을 직접 사용해야 합니다.
반응형'SPRING > JPA' 카테고리의 다른 글
페치조인(fetch Join )이란 (6) 2021.12.03 Spring Data JPA(쿼리 메소드) (0) 2021.10.11 JPA(Java Persistence API)동작 방식 (0) 2021.10.10 JPA(Java Persistence API)의 시작 (6) 2021.10.10