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 |