일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
Tags
- 합 구하기
- c#
- spring
- 브루투포스
- Java
- LCM
- 소수찾기
- 우선순위큐
- unity
- 1일1솔
- appendleft
- 누적합
- 파이썬
- 프로그래머스
- deque
- 백준
- C#강의
- Python
- 소수판별
- 그리디 알고리즘
- JPA
- pypy3
- 완전탐색
- 인프런
- mvc
- BFS
- popleft
- 연관관계
- DP
- python3
Archives
- Today
- Total
jae_coding
[Spring JPA] 지연로딩 vs 즉시로딩 본문
반응형
지연로딩 (fetch = FetchType.LAZY)
@ManyToOne(fetch=FetchType.LAZY)
엔티티 조회 시 연관관계 필드가 프록시 객체로 제공되며, 지연로딩을 이용하면, 연관관계를 참조하기 전까지는 프록시 객체가 초기화가 되지 않고, 프록시 객체를 참조할 때, 프록시 객체가 초기화되고 SQL이 발생한다.
즉시로딩 (fetch = FetchType.EAGER)
@ManyToOne(fetch=FetchType.EAGER)
엔티티 조회 시 연관관계에 있는 데이터를 한번에 조회하는 기능이며, 엔티티의 연관관계 필드에는 실제 엔티티 객체가 반환된다.
TIP
1. 가급적 지연 로딩만 사용 (실무)
2. 즉시 로딩을 이용하면 예상하지 못한 SQL이 발생
3. 즉시 로딩은 JPQL에서 N+1 문제를 일으킴
4. @ManyToOne, @OneToOne은 기본이 즉시로딩 -> LAZY로 설정
5. @OneToMany, @ManyToMany는 기본이 지연로딩
6. 함께 사용하면 즉시로딩, 가끔사용하면 지연로딩 권장
반응형
'Spring, java > Spring_JPA' 카테고리의 다른 글
[Spring JPA] 프록시 (0) | 2022.09.15 |
---|---|
[Spring JPA] 상속관계 매핑 (Superclass) (0) | 2022.09.13 |
[Spring JPA] 다양한 연관관계 매핑 (N:1, 1:N, 1:1, N:M) (0) | 2022.09.10 |
[Spring JPA] 연관관계 매핑 (0) | 2022.09.10 |
[Spring JPA] 엔티티 매핑 (0) | 2022.09.08 |
Comments