실전! 스프링 데이터 JPA

Ch03. 쿼리 메소드 기능 - @EntityGraph

webmaster 2021. 12. 26. 13:29
728x90

연관된 엔티티들을 SQL 한 번에 조회하는 방법

JPA

JPA 페치 조인

  • 연관된 객체를 Lazy로 설정 후 연관된 객체를 조회할 때마다 쿼리가 실행된다(LAZY)
  • 이를 N +1 문제가 발생한다고 하는데 이를 해결하기 위해 fetch join을 활용하여 연관된 데이터를 모두 가지고 올 수 있다.

SpringDataJPA

Query

JPQL을 직접 작성한다.

  • JPQL를 직접 작성하여 FetchJoin한다.

EntityGraph 사용

JPA 2.2 이상 버젼부터 지원하는 기능
만약 이름으로 EntityGraph를 가지고 오고 싶다면

  • JPA 2.2 이상 버전부터 제공해 주는 기능이다.
  • EntityGraph를 사용하여, FetchJoin을 사용하는 것처럼 엔티티 그래프를 조회할 수 있다.
  • 앤티티에 NamedEntityGraph를 적어주면 이름으로 EntityGraph를 가지고 올 수 있다.

 

728x90