@EntityGraph가 무엇일까?
@EntityGraph는 연관된 엔티티들을 SQL 한번에 조회하는 방법이다.
페치조인이 무엇일까?
- member의 team은 지연로딩 관계라 가정해보자. 다음과 같이 team의 데이터를 조회할 때 마다 쿼리가 실행된다(N+1 문제)
- 연관된 엔티티를 한번에 조회하려면 다음과 같이 페치 조인이 필요하다
@EntityGraph 사용해보자
- 페치 조인(FETCH JOIN)의 간편 버전이다
- LEFT OUTER JOIN 사용한다
public interface MemberRepository extends JpaRepository<Member, Long> {
@Override
@EntityGraph(attributePaths = {"team"})
List<Member> findAll();
@EntityGraph(attributePaths = {"team"})
@Query("select m from Member m")
List<Member> findMemberEntityGraph();
}
attributePaths에 페치 조인 대상을 작성한다.
'공부 > Spring' 카테고리의 다른 글
[스프링 데이터 JPA] 사용자 정의 레포지토리를 추가로 구현하는 방법을 알아보자 (0) | 2022.08.25 |
---|---|
JPA Hint를 통해 성능최적화를 할까? (0) | 2022.08.25 |
[스프링 데이터 JPA] 벌크성 수정 쿼리에 대해 알아보자 (0) | 2022.08.25 |
스프링 데이터 JPA에서 페이징과 정렬을 해보자 (0) | 2022.08.25 |
스프링 데이터 JPA의 반환타입을 알아보자 (0) | 2022.08.25 |
댓글