JPA 즉시 로딩과 지연 로딩

김두현·2023년 4월 29일
1

JPA

목록 보기
11/14
post-thumbnail

Goal

  • 즉시 로딩에 대해 파악한다.
  • 지연 로딩에 대해 파악한다.
    • 프록시에 대해 모른다면 JPA 프록시를 보고오자.

즉시 로딩

  • 즉시 로딩 : 조회하는 엔티티가 참조하는 엔티티도 JOIN query를 사용해 함께 조회한다.

즉시 로딩 주의점

  • 실무에서 즉시 로딩은 쓸 일이 없다. 지연 로딩만 사용하자.
    • JPQL에서 N+1 문제(최초 query가 NN개 query 실행)를 야기할 수 있다.
  • @ManyToOne, @OneToOne는 default가 즉시 로딩이다.
    • 지연 로딩으로 바꿔서 사용하자.

Member를 조회할 때 항상 Team도 같이 조회해야 할까?

  • 그렇지 않다. 지연 로딩에 대해 알아보자.

지연 로딩

  • 지연 로딩 : 연관된 엔티티는 프록시 객체로 조회한다.
    • 이후 Member에서 Team을 조회하고자 할 때 프록시 객체를 초기화하여 사용한다.
    • 이를 통해 불필요한 정보를 DB에서 찾지 않게되어 성능이 향상된다.
    • @OneToMany, @ManyToMany은 default가 지연 로딩이다.

결론 : 연관관계 매핑은 전부 다 지연 로딩으로 하자.


참고 자료

https://www.inflearn.com/course/ORM-JPA-Basic


💕오류 지적 및 피드백은 언제든 환영입니다. 복제시 출처 남겨주세요!💕
💕좋아요와 댓글은 큰 힘이 됩니다.💕
profile
I AM WHO I AM

0개의 댓글