공부/JPA
지연 로딩과 즉시 로딩
챠오위
2022. 2. 10. 21:26
- 가급적 지연 로딩만 사용(특히 실무에서)
- 즉시 로딩을 적용하면 예상하지 못한 SQL 이 발생
- 즉시 로딩은 JPQL 에서 N+1 문제를 일으킨다.
- @ManyToOne, @OneToOne 은 기본이 즉시 로딩
(즉, LAZY 로 설정을 변경해야 한다)
- @OneToMany, @ManyToMany 는 기본이 지연 로딩
- 모든 연관 관계에서 지연 로딩을 사용하고,
- 즉시 로딩을 사용할 시, JPQL fetch 조인이나 엔티티 그래프 기능을 사용하자.
참고)
1. 김영한 님의 '자바 ORM 표준 JPA 프로그래밍 - 기본편'에서 즉시 로딩과 지연 로딩