2023-07-24 (QueryDsl fetchjoin)

김현성·2023년 7월 24일

오늘의 공부

목록 보기
19/31
  • JPA에서 연관 관계가 있는 엔티티를 조회할 때, 조회된 데이터의 개수만큼 연관 관계에 대한 추가적인 조회 쿼리가 발생하는 이슈

  • 로딩전략을 즉시로딩과 지연로딩으로 설정한다고 해결되는 문제가 아님

  • 한번의 쿼리로 Join 대상 테이블 데이터까지 한 번에 가져오고 영속성 컨텍스트에 넣어주기 때문에 N + 1 문제를 해결하기 위한 하나의 방법

  • LAZY로 N+1을 막고, 연관관계에 있는 엔티티 조회시 fetch join을 이용하는게 좋을듯 싶다

    • 즉시로딩 설정 시 부모조회 쿼리 1개와 연관관계 자식조회 쿼리 N개 발생(N + 1 발생)
    • 지연로딩 설정 시 부모에서 자식조회시 쿼리 N개 발생(N + 1발생)
    • 일반 join시 부모 조회 쿼리만 생성
    • fetch join시 연관관계를 즉시 로딩처럼 한번에 다 가져오면서 N + 1 문제를 해결
profile
내가 이해한 코드가 다른 개발자도 이해한다! 안녕하세요 JAVA 개발자 입니다.

1개의 댓글

comment-user-thumbnail
2023년 7월 24일

개발자로서 성장하는 데 큰 도움이 된 글이었습니다. 감사합니다.

답글 달기