Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- sqld자격증합격
- 격파르타비전공자
- 프로그래머스
- 비전공자sqld
- java최솟값구하기
- java set 출력
- java기본자료형
- java 자료구조 활용
- java알고리즘문제풀이
- java map 저장
- 항해15기
- java map
- java list 출력
- 프로그래머스제일작은수
- 항해99후기
- 격파르타장점
- 작은수제거하기
- java set 저장
- java참조자료형
- 코딩부트캠프후기
- 격파르타후기
- javaJVM
- 컴파일
- javaJRE
- java알고리즘
- 인터프린터언어
- java map 출력
- 노베이스부트캠프
- 격파르타합격후기
- java list 저장
Archives
- Today
- Total
코딩과 결혼합니다
[JPA] 프록시 - 즉시 로딩과 지연 로딩 본문
728x90
public class Order {
@Id
@GeneratedValue
@Column(name = "order_id")
private Long id;
@ManyToOne(fetch = LAZY)
@JoinColumn(name = "member_id")
private Member member;
...
}
지연 로딩 동작
- LAZY를 걸어주면 Order를 조회할 때에 Member까지 조인해서 가져오지 않고, proxy 객체로 조회한다.
- Member를 직접 다루게 될 때에 쿼리가 나가게 된다.
Order order = em.find(Order.class, 1L) //Order --LAZY-- Member(proxy)
Member member = order.getMember();
member.getName(); //실제 member를 사용하는 시점에 초기화(DB조회)
🤔 만약 Order와 Member를 자주 사용하게 된다면?
지연로딩을 사용하게 되면 쿼리가 두 개씩 계속 나가게 된다. 이러면 아무래도 성능상의 손해를 보기 때문에
EAGER(즉시 로딩)을 사용하여 함께 조회할 수 있다.
즉시 로딩 동작
- Order와 Member를 조인하여 한 번에 쿼리를 날린다. / 프록시 사용 x
⁉️ 즉시로딩을 쓸 때 주의할 점
- 가급적 지연 로딩만 사용
- 즉시 로딩을 적용하면 예상치 못한 SQL 발생
- JPQL에서 N + 1 문제를 일으킨다.
- @xToOne 은 기본이 즉시 로딩이다. ➡️ 지연 로딩으로 설정하기.
- @xToMany 는 기본이 지연 로딩
지연로딩을 사용했을 때에도 N+1 문제가 발생할 수 있지만, 이는 대응할 수 있는 방법이 여러가지 있다.
https://coding-s2-chaewon.tistory.com/252
[JPA] 지연 로딩과 조회 성능 최적화(1)
등록이나 수정 등은 데이터 한 건을 다루는 것이기 때문에 거의 성능 문제가 발생하지 않는다. 주로 조회하는 데에 문제가 발생하는데 이번에는 여러 방법으로 데이터를 조회해 보면서 JPA로 성
coding-s2-chaewon.tistory.com
https://coding-s2-chaewon.tistory.com/253
[JPA] 지연 로딩과 조회 성능 최적화(2)
https://coding-s2-chaewon.tistory.com/252 [JPA] 지연 로딩과 조회 성능 최적화(1) 등록이나 수정 등은 데이터 한 건을 다루는 것이기 때문에 거의 성능 문제가 발생하지 않는다. 주로 조회하는 데에 문제가
coding-s2-chaewon.tistory.com
'2세 > JPA' 카테고리의 다른 글
[JPA] 지연 로딩과 조회 성능 최적화(3) (1) | 2024.02.24 |
---|---|
[JPA] 영속성 전이(CASCADE), 고아 객체 (0) | 2024.02.23 |
[JPA] 프록시 (0) | 2024.02.21 |
[JPA] 지연 로딩과 조회 성능 최적화(2) (0) | 2024.02.20 |
[JPA] 지연 로딩과 조회 성능 최적화(1) (0) | 2024.02.19 |