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

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

- JPQL를 직접 작성하여 FetchJoin한다.
EntityGraph 사용


- JPA 2.2 이상 버전부터 제공해 주는 기능이다.
- EntityGraph를 사용하여, FetchJoin을 사용하는 것처럼 엔티티 그래프를 조회할 수 있다.
- 앤티티에 NamedEntityGraph를 적어주면 이름으로 EntityGraph를 가지고 올 수 있다.
728x90
'실전! 스프링 데이터 JPA' 카테고리의 다른 글
| Ch04. 확장 기능 - 사용자 정의 리포지토리 구현 (0) | 2021.12.27 |
|---|---|
| Ch03. 쿼리 메소드 기능 - JPA Hint, Lock (0) | 2021.12.26 |
| Ch03. 쿼리 메소드 기능 - 벌크성 수정 쿼리 (0) | 2021.12.26 |
| Ch03. 쿼리 메소드 기능 - SpringDataJPA 페이징과 정렬 (0) | 2021.12.26 |
| Ch03. 쿼리 메소드 기능 - 반환 타입 (0) | 2021.12.26 |