-
[Spring] 모든 연관관계는 지연로딩으로 설정해야하는 이유Spring 2021. 11. 9. 21:24
- 즉시로딩(EAGER)은 예측이 어렵고, 어떤 SQL이 실행될지 추적하기 어렵다. 특히 JPQL을 실행할 때 N+1 문제가 자주 발생한다.
- 실무에서 모든 연관관계는 지연로딩(LAZY)으로 설정해야 한다.
- 연관된 엔티티를 함께 DB에서 조회해야 하면, fetch join 또는 엔티티 그래프 기능을 사용한다.
- @XToOne(OneToOne, ManyToOne) 관계는 기본이 즉시로딩이므로 직접 지연로딩으로 설정해야 한다.
출처 : 실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발 - 인프런 | 학습 페이지 (inflearn.com)
'Spring' 카테고리의 다른 글
[Spring] 테이블, 컬럼명 생성 전략 (0) 2021.11.09 [Spring] 컬렉션은 필드에서 초기화해야 하는 이유 (0) 2021.11.09 [Spring] @ManyToMany를 사용 안 하는게 좋은 이유 (0) 2021.11.09 [Spring] 값 타입 Entity 클래스를 불변하게 설계하는 방법 (0) 2021.11.09 [Spring] 실무에서 가급적 Entity 클래스에 Setter 사용을 자제해야 하는 이유 (0) 2021.11.09