[SPRING] 지연로딩

야부엉·2023년 11월 22일
0

지연로딩

1. 지연로딩

  • JPA에서는 연관 관계가 설정된 Entity 정보를 바로 가져올지? 필요할 때 가져올지? 정할 수 있다. -> 즉, 가져오는 방식을 설정 할 수 있다. 가져오는 방식을 Fetch 타입이라고 한다.

2. Fetch 타입

  • Lazy : 지연 로딩 -> 필요한 시점에 정보를 가져온다.
  • Eager : 즉시 로딩 -> 즉시 정보를 가져온다.
  • @ 뒤에 Many가 붙어 있으면 default Eager, @ 뒤에 One이 붙어 있으면 default Lazy
  • Many가 붙어있다는 것은 Data가 여러개 있다는 것을 의미한다. 즉, select column from table where 특정 조건인 여러개 중에서 선택하는 경우일 수 있으니, 지연로딩으로 효율적으로 조회
  • @ 뒤에 Many가 있는것은 default로 Eager지만, 만약 불러올 때마다, 꼭 필요한것이 아니라 원할때 부르고 싶으면 Lazy로 설정한다.

3. 영속성 컨텍스트와 지연로딩

  • 영속성 컨텍스트의 주요 기능 중 하나인 쓰기 지연 저장소가 있다. 지연 로딩도 마찬가지로 영속성 컨텍스트의 기능 중 하나이다.
  • 영속성 컨텍스트가 존재한다는 것은 트랜잭션이 적용되어야 한다는 것을 의미하고, 즉 지연로딩된 entity 정보를 조회할려고 할때도 트랜잭션이 필수다.

참고

내일배움캠프

profile
밤낮없는개발자

0개의 댓글