article thumbnail image
Published 2022. 7. 5. 00:39

1. 지연 로딩 LAZY을 사용해서 프록시로 조회

2. 지연 로딩

 

 

3. 즉시 로딩 EAGER를 사용해서 함께 조회

 

4. 즉시 로딩

 

5. 프록시와 즉시로딩 주의

• 가급적 지연 로딩만 사용(특히 실무에서) 
• 즉시 로딩을 적용하면 예상하지 못한 SQL이 발생
• 즉시 로딩은 JPQL에서 N+1 문제를 일으킨다. 
• @ManyToOne, @OneToOne은 기본이 즉시 로딩 -> LAZY로 설정
• @OneToMany, @ManyToMany는 기본이 지연 로딩

 

 

 

6. 지연 로딩 활용

• Member와 Team은 자주 함께 사용 -> 즉시 로딩
• Member와 Order는 가끔 사용 -> 지연 로딩
• Order와 Product는 자주 함께 사용 -> 즉시 로딩

 

  

7. 지연 로딩 활용 - 실무

• 모든 연관관계에 지연 로딩을 사용해라! 
• 실무에서 즉시 로딩을 사용하지 마라! 
• JPQL fetch 조인이나, 엔티티 그래프 기능을 사용해라!(뒤에서 설명) 
• 즉시 로딩은 상상하지 못한 쿼리가 나간다.

 

 

 

출처 : 김영한, 자바 ORM 표준 JPA 프로그래밍 - 기본편

'JPA' 카테고리의 다른 글

실전 예제 - 5.연관관계 관리  (0) 2022.07.05
영속성 전이: CASCADE  (0) 2022.07.05
프록시  (0) 2022.07.04
실전 예제 - 4. 상속관계 매핑  (0) 2022.07.04
@MappedSuperclass  (0) 2022.07.04
복사했습니다!