[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 란?
'Spring' 카테고리의 다른 글
[Spring Boot] @Transactional 어노테이션 속성 (0) | 2022.10.12 |
---|---|
[JPA] OneToMany(1:N) 페이징 처리 (0) | 2022.10.12 |
[JPA] 일반 Join과 Fetch Join의 차이 (0) | 2022.10.12 |
[JPA] 즉시 로딩(FetchType.EAGER)과 지연 로딩(FetchType.LAZY) (0) | 2022.10.12 |
[Spring Boot] AutoConfiguration 이란? (1) | 2022.10.12 |