JPA에서 테이블 간 연관 관계는 참조를 통해 이뤄짐.
서비스가 커질수록, 참조하는 객체가 많아지고, 객체가 가지는 데이터의 양이 많아짐.
이렇게 객체가 커질수록, DB로부터 참조하는 객체들의 데이터까지 한꺼번에 가져오는 행동은 부담이 커짐.
따라서 JPA는 참조하는 객체들의 데이터를 가져오는 시점을 정할 수 있음.
➡️ Fetch Type
- EAGER
성실한, 열심인 뜻을 가짐.
말 그대로 데이터를 가져오는데 성실함.
하나의 객체를 DB로부터 읽어올 때 참조 객체들의 데이터까지 전부 읽어오는 방식을 뜻함.
언제나 한번의 쿼리로 모든 정보를 가져옴.
참조 객체와 항상 함께 로드되어야 하는 조건을 가진 entity에 적합함
연곤된 entitiy를 따로따로 조회하는 것이 아니라, 조인을 이용해 하나의 쿼리로 데이터를 가져오기 때문에 만약외래키에게 null을 허용한다면
외부조인을, 외래키가 Null을 허용하지 않는 다면 내부조인을 이용해서 가져온다. - 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 |