[SpringBoot3]JPA - fetch 타입

2025. 9. 24. 00:03·백엔드 공부(BE, AWS)

JPA에서 fetch 타입 :  연관관계 데이터를 조회할 때 언제 로딩할지를 결정

종류

  1. EAGER (즉시 로딩)
    • 엔티티를 조회할 때 연관된 엔티티도 바로 같이 조회
    • 예: `Schedule s = scheduleRepository.findById(1L);` → `s.getStore()`도 즉시 DB에서 가져옴
    • 장점: 코드에서 바로 객체 사용 가능
    • 단점: 연관관계가 많으면 불필요한 JOIN/조회 증가 → 성능 저하
  2. LAZY (지연 로딩, 기본값)
    • 실제로 해당 필드를 접근할 때 DB에서 조회
    • 예: `Schedule s = scheduleRepository.findById(1L);` → `s.getStore()` 호출 전까지 DB 접근 안 함
    • 장점: 필요할 때만 DB 접근 → 성능 효율적
    • 단점: 영속성 컨텍스트 밖에서 접근하면 LazyInitializationException 발생 가능

Example

 
`@ManyToOne(fetch = FetchType.LAZY)`
 `@JoinColumn(name = "store_id")`
`private Store store;`
  • Schedule을 조회할 때는 Store를 바로 가져오지 않고,
  • 실제 schedule.getStore() 호출 시점에 DB에서 조회

일반적인 규칙

  • @ManyToOne / @OneToOne → 기본 EAGER, 보통 LAZY로 바꿈
  • @OneToMany / @ManyToMany → 기본 LAZY, 그대로 두는 것이 성능상 안전

 

 

FetchType은 성능 최적화와 연관관계 객체 로딩 시점 결정

실무에서는 대부분 ManyToOne, OneToOne도 LAZY로 바꿔서 필요할 때만 불러오는 방식 사용

'백엔드 공부(BE, AWS)' 카테고리의 다른 글

[백엔드] API 명세서 배포하기 Swagger 활용  (0) 2026.02.03
[Spring] AOP, 직렬화, 람다식  (0) 2025.11.03
25.07.02 생성시각 삽입  (0) 2025.07.02
게시판 CRUD 인기순 정렬(조회수기반)  (0) 2025.07.02
Article 파일 수정(오류수정)  (0) 2025.06.30
'백엔드 공부(BE, AWS)' 카테고리의 다른 글
  • [백엔드] API 명세서 배포하기 Swagger 활용
  • [Spring] AOP, 직렬화, 람다식
  • 25.07.02 생성시각 삽입
  • 게시판 CRUD 인기순 정렬(조회수기반)
sihyes
sihyes
24학번 컴퓨터공학과
  • sihyes
    시혜적으로개발
    sihyes
  • 글쓰기 관리
  • 전체
    오늘
    어제
    • 분류 전체보기 (104) N
      • 단순 설정 (9)
      • 백엔드 공부(BE, AWS) (8)
        • 로그인&회원가입 (3)
        • 파일업로드&GPT (2)
      • 개인 프로젝트 (2)
        • 알바솔로몬 (1)
        • PLACO 프로젝트 (0)
      • 도서 공부(정리) (20)
        • 알고리즘 코딩 테스트 자바 편 (1)
        • SQL첫걸음 (8)
        • 코딩 자율학습 스프링 부트 3 자바 백엔드 개발 .. (6)
        • Do it! 지옥에서 온 문서 관리자 깃&깃허브 .. (5)
      • 컴퓨터공학과 (51)
        • Python - 문해프 (1)
        • Java 1 & 2 (23)
        • 컴퓨터네트워크 (3)
        • 모앱JavaScript (0)
        • Data structures (9)
        • 소프트웨어공학 (5)
        • 오픈SW플랫폼 제출용 (5)
      • 개인공부정리페이지 (8)
        • 백준 (2)
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    ㅇ
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.4
sihyes
[SpringBoot3]JPA - fetch 타입
상단으로

티스토리툴바