Spring

[JPA] @EntityGraph 란?

728x90

[JPA] 일반 Join과 Fetch Join의 차이 에서 N+1문제를 해결하기 위해 fetch join을 쓴다는 것을 알 수 있었죠!

 

@EntityGraph는 바로 Spring Data JPA에서 fetch join을 어노테이션으로 사용할 수 있도록 만들어 준 기능입니다!

 

일반적으로 fetch join을 사용하기 위해서는 아래코드처럼 JPQL을 직접 입력해주어야하는 수고로움이 있습니다.

@Query("SELECT distinct t FROM Team t join fetch t.members")
public List<Team> findAllWithMemberUsingFetchJoin();

 

하지만 @EntityGraph를 사용하면 이렇게 간편하게 바뀔 수 있습니다 :))

@Override //기본 적으로 findAll이 있기때문에 Override
@EntityGraph(attributePaths = {"member"})
public List<Team> findAll();

 

출처:
- @EntityGraph 란?

 

728x90