Section 1. 즉시로딩
1. 즉시로딩
엔티티를 조회할 때 연관된 엔티티도 함께 조회하는 Fetch EAGER 타입
2. 즉시로딩 테스트
- OrderItem 객체 조회
3. 즉시로딩 select 쿼리문
- OrderItem 엔티티와 연관된 엔티티를 조회하고 연관된 엔티티의 연관된 엔티티 또한 조회
Section 2. 지연로딩
1. 지연로딩
연관된 엔티티는 사용할 때 조회하는 Fetch LAZY 타입
- 실제 비즈니스 구현 시 매핑되는 엔티티의 개수 ↑
- 사용하지 않는 데이터도 한꺼번에 조회하므로 성능 ↓
2. 지연로딩 설정
- @ManyToOne 어노테이션에 fetch 설정 지정
3. 지연로딩 테스트
- OrderItem 객체 조회
- orderItem.getOrder().getClass() 수행 결과
- 실제 객체가 아닌 프록시 객체를 넣어둠
- 프록시 객체는 실제 사용 시점에 조회 쿼리문이 실행됨
- orderItem.getOrder().getOrderDate() 수행 결과
- 실제 사용 시점에 select 쿼리문이 수행됨
4. 연관 관계 매핑 지연로딩 설정
- 연관 관계가 맺어진 엔티티의 fetch 전략을 모두 LAZY 로 설정