본문 바로가기

Dev/Spring

Fetch Type

JPA에서 테이블 간 연관 관계는 참조를 통해 이뤄짐.

서비스가 커질수록, 참조하는 객체가 많아지고, 객체가 가지는 데이터의 양이 많아짐.

이렇게 객체가 커질수록, DB로부터 참조하는 객체들의 데이터까지 한꺼번에 가져오는 행동은 부담이 커짐.

따라서 JPA는 참조하는 객체들의 데이터를 가져오는 시점을 정할 수 있음.

➡️ Fetch Type

 

 

  1. EAGER
    성실한, 열심인 뜻을 가짐.
    그대로 데이터를 가져오는데 성실함.
    하나의 객체를 DB로부터 읽어올 참조 객체들의 데이터까지 전부 읽어오는 방식을 뜻함.
    언제나 한번의 쿼리로 모든 정보를 가져옴.
    참조 객체와 항상 함께 로드되어야 하는 조건을 가진 entity 적합함
    연곤된 entitiy 따로따로 조회하는 것이 아니라, 조인을 이용해 하나의 쿼리로 데이터를 가져오기 때문에 만약외래키에게 null 허용한다면
    외부조인을, 외래키가 Null 허용하지 않는 다면 내부조인을 이용해서 가져온다.
  2. LAZY
    게으른 뜻을 가짐.
    지연 로딩.
    게을러서, 참조객체들의 데이터들은 무시하고 해당 entity 데이터만을 가져옴.

출처 : 

'Dev > Spring' 카테고리의 다른 글

Bean & Component  (0) 2021.09.27
JPA CascadeType  (0) 2021.09.27
Spring Cloud Gateway  (0) 2021.09.24
Spring Security  (0) 2021.09.24
Spring Batch - JobParameter & Scope  (0) 2021.09.24