Fetch Type이란
Fetch Type은 JPA가 하나의 Entity를 조회할 때, 연관관계가 있는 객체들을 어떻게 가져올 것이냐를 나타내는 설정값입니다.
Fetch Type은 크게 Eager와 Lazy 두가지 전략이 있습니다.
Fetch Type Issue 상황이라는 것은 하나의 Entity를 로드할 때, 아래의 두가지 전략 중 고민하는 상황을 말합니다.
- 연관 관계에 있는 Entity를 모두 가져온다 -> Eager 전략
- 연관 관계에 있는 Entity 가져오지 않고, getter로 접근할 때 가져온다 -> Lazy 전략
Fetch Type이 동작하는 시점
JPA Entity Manager에 의해 관리되는 Persistence Context에 Entity가 Managed 상태로 올라올 때의 동작입니다.
queryDSL과 같은 쿼리 빌더를 이용해 아무리 Join 문을 짜도, (Fetch Join을 하지 않는 이상) 메인 도메인의 엔티티만 Persistence Context에 올라옵니다. 연관관계에 대한 Fetch도 메인 도메인만 일어납니다.
'Back-end > JPA' 카테고리의 다른 글
[JPA] 복합 기본키 설정 (0) | 2022.03.08 |
---|---|
[JPA] 더티 체킹(Dirty Checking) 이란? (0) | 2022.03.08 |
[JPA] N+1 문제가 발생하는 이유와 해결 방법 (0) | 2021.11.22 |
[JPA] JPA Propagation 전파 단계 (0) | 2021.11.22 |
[JPA] JPA 영속성 컨텍스트의 이점 5가지 (0) | 2021.11.22 |