본문 바로가기
Java/JPA

[SpringBoot_JPA_1] FetchType.LAZY, EAGER

by HJ0216 2023. 5. 25.

이 글은 김영한의 [실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발] 수강하며 정리한 글입니다.

 

 

🟦 기본 환경: IDE: IntelliJ, Language: Java

 

 

FetchType.EAGER(즉시 로딩): 데이터 조회 시 연관 데이터까지 한 번에 조회

: @OneToMnay default

: @ManyToMnay default

@OneToOne FetchType을 선언하지 않을 경우, Default값인 EAGER로 선언되어 Delivery table 조회 시 연관관계에 있는 Order table까지 함께 조회

 

 

FetchType.LAZY(지연 로딩): 필요한 데이터만 선별적으로 조회

: @ManyToOne default

: @OneToOne default

@OneToOne FetchType을 LAZY로 선언할 경우, Delivery table을 조회할 때 Order table까지 조회되지 않음

 

 

⭐ EAGER를 사용할 경우, 의도치 않은 쿼리문 생성으로 인해 성능이 저하될 수 있으므로 지연로딩(LAZY)을 사용하는 것이 좋음

 

 

 

참고 자료

 

JPA 지연로딩을 사용해야하는 이유, 지연로딩(Lazy)과 즉시로딩(Eager)

공부하는 과정에서 작성한 글입니다. 잘못되거나 보충할 내용이 있다면 언제든지 알려주세요:) JPA에서는 데이터를 조회할 때 즉시 로딩(EAGER)과 지연 로딩(LAZY) 두 가지 방식이 있다. 이 두 가지

developer-hm.tistory.com

 

'Java > JPA' 카테고리의 다른 글

[SpringBoot_JPA_1] Injection  (0) 2023.05.25
[SpringBoot_JPA_1] Cascade Type  (0) 2023.05.25
[SpringBoot_JPA_1] JPA Entity Default Constructor  (0) 2023.05.23
[SpringBoot_JPA_1] @JoinTable  (0) 2023.05.23
[SpringBoot_JPA_1] @Enumerated  (0) 2023.05.23