Fetch Type 은 JPA 가 하나의 Entity 를 조회할 때, 연관관계에 있는 객체들을 어떻게 가져올 것이냐를 나타내는 설정값입니다.
Fetch Type 은 크게 Eager 와 Lazy 두가지 전략이 있습니다. Fetch Type Issue 상황이라는 것은 하나의 Entity 를 로드할 때, 아래의 두가지 전략 중 고민하는 상황을 말합니다.
- @ManyToOne, @OneToOne : 즉시로딩(FetchType.EAGER)
- @OneToMany,@ManyToMany : 지연로딩(FetchType.LAZY)
하지만 대게 정말 필요한 상황을 제외하고는 LAZY, 지연로딩하는 것을 권고한다고 한다.
→ 단 방향 연관 관계 매핑에 FetchType.LAZY를 설정해서 하이버데이트의 지연 로딩 페치 계획을 기본 값으로 설정하고 필요시 재정의 하는 방법을 권장한다.
- @ManyToOne, @OneToOne (optional = false, true)