본문 바로가기 메뉴 바로가기

보통의 개발자

프로필사진
  • 글쓰기
  • 방명록

보통의 개발자

검색하기 폼
  • 분류 전체보기 (157)
    • Spring&Spring Boot (26)
    • JSP&Servlet (16)
    • JPA (4)
    • Java (10)
    • CS (21)
      • Network (10)
      • OS (9)
      • Data Structure & Algorithms (2)
    • PS (3)
    • Front-End (8)
    • Security (14)
      • 웹 해킹 (0)
      • 시스템 해킹 (0)
      • 보안 지식 (0)
    • python (31)
      • 파이썬 for Beginner (10)
    • Git 공부 (17)
    • 머신러닝&딥러닝 공부 (3)
    • 프로젝트 (1)
  • 방명록
  • 분류 전체보기 (157)
    • Spring&Spring Boot (26)
    • JSP&Servlet (16)
    • JPA (4)
    • Java (10)
    • CS (21)
      • Network (10)
      • OS (9)
      • Data Structure & Algorithms (2)
    • PS (3)
    • Front-End (8)
    • Security (14)
      • 웹 해킹 (0)
      • 시스템 해킹 (0)
      • 보안 지식 (0)
    • python (31)
      • 파이썬 for Beginner (10)
    • Git 공부 (17)
    • 머신러닝&딥러닝 공부 (3)
    • 프로젝트 (1)
  • 방명록
  • GitHub

fetch join (2)
[JPA] 컬렉션(1:N 관계) 데이터 조회 방법 및 주의사항

DB의 테이블들은 외래키를 사용해 테이블끼리 관계를 맺게 된다. 이를 JPA에서는 @OneToMany, @ManyToOne 등의 애노테이션을 사용해 엔티티 클래스 간의 연관관계로 매핑시키고, 매핑된 엔티티(객체)를 대상으로 쿼리를 날릴 수 있다. 이 때문에 기존의 SQL로 조회하는 것보다 객체 지향적으로 개발할 수 있다.하지만 지연 로딩 설정, N+1 문제, 페치 조인 최적화 등 고려해야 할 부분이 많다. 특히 @__ToOne 관계를 가지는 엔티티를 함께 조회해야 할 때, 생각한 것과 다른 결과가 도출돼 장애가 나거나 성능도 안 나오게 된다.본 포스팅에서는 조회하고 싶은 엔티티(루트 엔티티)가 1:N 관계를 가지는 컬렉션 객체를 필드로 가지고 있을 때 어떤 부분들을 주의해야 하고, 어떻게 최적화할 수 있..

JSP&Servlet 2025. 3. 27. 18:02
[JPA] Fetch 전략(Eager/Lazy)과 Fetch join으로 N+1 문제 해결하기

본문에 앞서 예시를 하나 들겠다. 다음과 같이 멤버 엔티티와 팀 엔티티가 N:1 연관관계를 맺고 있다고 해 보자.이를 위한 엔티티 클래스는 아래와 같이 간단하게 작성했다.@Entity@Getter @Setterpublic class Member { @Id @GeneratedValue @Column(name = "member_id") private Long id; private String name; @ManyToOne @JoinColumn(name = "team_id") private Team team;}@Entity@Getter @Setterpublic class Team { @Id @GeneratedValue @Column(name = "team_id"..

JPA 2025. 2. 28. 18:56
이전 1 다음
이전 다음
공지사항
  • 안녕하세요! 이 블로그를 클릭하신 모두를 응원⋯
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
  • github
TAG
  • Thymeleaf
  • 스프링 mvc
  • 김영환
  • 지옥에서 온 git
  • jsp
  • Computer_Networking_A_Top-Down_Approach
  • 쉘 코드
  • 스프링 테스트
  • Python Cookbook
  • Spring Boot
  • 운영체제 반효경
  • Spring Data JPA
  • git
  • Do it! 정직하게 코딩하며 배우는 딥러닝 입문
  • 생활코딩 javascript
  • fetch join
  • 프로그래머스
  • JPA
  • git branch
  • 파이썬 for Beginner 연습문제
  • Spring
  • 방명록 프로젝트
  • 파이썬 for Beginner 솔루션
  • Gradle
  • 스프링
  • 쉽게 배우는 운영체제
  • 선형 회귀
  • 패킷 스위칭
  • git merge
  • 스프링 컨테이너
more
«   2026/05   »
일 월 화 수 목 금 토
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
31
글 보관함
반응형
250x250
728x90
반응형

Blog is powered by Tistory / Designed by Tistory

티스토리툴바