Spring/Spring Data JPA

Spring Data JPA - @EntityGraph

jddng 2022. 3. 20. 19:51
728x90
반응형

 

@EntityGraph

 

 @EntityGraph를 이용하여 연관된 엔티티들을 SQL 한번에 조회할 수 있다. 주 엔티티에서 연관 관계를 맺고 있는 엔티티를 fetch join 해준다.

 

 

JPQL fetch join

 

@Query("select m from Member m left join fetch m.team")
List<Member> findMemberFetchJoin();

 

 

@EntityGraph

 

  • @EntityGraph는 fetch join을 간단하게 쓸 수 있는 방법이다.
  • LEFT OUTER JOIN 사용

 

//공통 메서드 오버라이드
@Override
@EntityGraph(attributePaths = {"team"})
List<Member> findAll();

//JPQL + 엔티티 그래프
@EntityGraph(attributePaths = {"team"})
@Query("select m from Member m")
List<Member> findMemberEntityGraph();

//메서드 이름으로 쿼리에서 특히 편리하다.
@EntityGraph(attributePaths = {"team"})
List<Member> findByUsername(String username)

 

728x90
반응형