공부/JPA

지연 로딩과 즉시 로딩

챠오위 2022. 2. 10. 21:26

- 가급적 지연 로딩만 사용(특히 실무에서)

- 즉시 로딩을 적용하면 예상하지 못한 SQL 이 발생

- 즉시 로딩은 JPQL 에서 N+1 문제를 일으킨다.

- @ManyToOne, @OneToOne 은 기본이 즉시 로딩 

  (즉, LAZY 로 설정을 변경해야 한다)

- @OneToMany, @ManyToMany 는 기본이 지연 로딩

 

- 모든 연관 관계에서 지연 로딩을 사용하고, 

- 즉시 로딩을 사용할 시, JPQL fetch 조인이나 엔티티 그래프 기능을 사용하자.

 

 

참고)

1. 김영한 님의 '자바 ORM 표준 JPA 프로그래밍 - 기본편'에서 즉시 로딩과 지연 로딩