N+1 문제
-
페치조인(fetch Join )이란SPRING/JPA 2021. 12. 3. 02:24
페치(fetch)조인은 SQL에서 사용하는 조인의 종류는 아니고 JPQL에서 성능 최적화를 위해 제공하는 기능입니다. 이것은 연관된 엔티티나 컬렉션을 한 번에 같이 조회하는 기능인데 join fetch 명령어로 사용할 수 있습니다. 페치 조인을 사용해서 회원(Member) 엔티티를 조회하면서 연관된 팀(Team) 엔티티도 함께 조회하는 JPQL을 실행해보겠습니다. 이해를 돕기 위해 회원, 팀 엔티티부터 순서대로 살펴보겠습니다. 23~25 라인을 보시면 Team엔티티와 N:1 관계, 지연 로딩으로 설정되어 있는걸을 확인하실 수 있습니다. (FetchType.LAZY) 23~24 라인을 보시면 Member엔티티와 양방향 매핑으로 되어있다는 것을 확인하실수 있습니다. 다음으로는 MemberRepository를..