힘차게, 열심히 공대생

  • 홈
  • 깃허브
  • 방명록

oneToMany n+1 1

[Spring] JPA N+1 문제 해결방법(지연로딩 N+1, OneToMany, ManyToOne 연관관계, fetch join, 페이지네이션)

이번 글에서는, JPA N+1 문제가 무엇인지,, 왜일어나고,,, 어떤 해결방법이 있는지 알아보고 내 프로젝트에 적용해 보고자 한다! 결과적으로, N+1 문제를 해결하면서 페이지네이션까지 하고자한다! JPA N+1 문제 JPA N+1문제란, JPA가 데이터를 조회할 때, 연관관계 매핑에있는 객체들을 함께 조회하여(N개 만큼) 추가 쿼리가 발생하는 문제를 N+1 문제라고 합니다. JPA는 JPQL을 생성하여 실행하게 되는데, 엔티티 객체와 필드이름을 이용하여 쿼리를 만든다. 이때 객체의 연관관계 매핑에 의해서 관계가 맺어진 다른 객체들이 함께 조회된다. 지연로딩시 N+1 문제가 발생하지 않나요? JPA의 FetchType으로는 즉시로딩과 지연로딩 이 있습니다. (이전 글 참고) 즉시로딩시, 연관된 모든 객..

Spring/Spring Boot 2022.03.30
이전
1
다음
더보기
프로필사진

민돌v 🌱Back-end Developer

  • 분류 전체보기 (478)
    • 회고 (40)
      • 일상 후기 회고 (6)
      • Today I Learned (30)
      • WIL (내일배움 캠프) (4)
    • 🔥 공대생은 성장 중 (12)
      • 강의 (5)
      • 세미나 (5)
      • 일잘하기 (2)
    • 📗 개발자 책 읽기 (21)
      • 모던 자바 인 액션 (7)
      • 가상 면접 사례로 배우는 대규모 시스템 설계 기초 (10)
      • 한권 내용 정리 (4)
    • Java (54)
      • Java 문법 (24)
      • Design Pattern (23)
      • 클린 코딩 (with OOP) (6)
    • Spring (101)
      • Spring Boot (72)
      • Test-Driven Develop (13)
      • Spring 김영한 (5)
      • Spring err (9)
      • 기타 (2)
    • Kafka (0)
    • Infra (35)
      • AWS (24)
      • Docker(도커) (3)
      • CI, CD (8)
    • Web-Network (9)
    • html-css (11)
    • JavaScript (27)
    • Flask (5)
    • Django (23)
      • 기초 (6)
      • 응용 (6)
      • django error (1)
      • 개인 프로젝트1(안전한 보행길 지도) (10)
    • Python (9)
    • TCP-IP 윈도우 소켓 프로그래밍 (6)
    • QGIS(지리정보) (4)
    • 운영체제 (18)
      • 쉽게 배우는 운영체제 (9)
      • Linux (9)
    • DataBase (28)
      • DB (2)
      • Mysql (19)
      • MongoDB (6)
      • Redis (1)
      • DynamoDB (0)
    • Git (9)
    • Android (1)
    • 알고리즘 문제 (54)
    • 스파르타 내일배움 캠프 (3)
    • CS 면접 준비 (3)
    • 기타 애매한 것 (4)

방문자수Total

  • Today :
  • Yesterday :
07-26 00:17

공지사항

  • 도전하지 않으면, 노력은 의미가 없다.
  • 할거면 깊게 해, 어중간하게 말고
  • 하면, 할 수 있다.
  • 아무것도 하지 않으면, 아무 일도 일어나지 않는다~!

최근글과 인기글

  • 최근글
  • 인기글

최근댓글

Copyright © Kakao Corp. All rights reserved.

  • Git
  • Mail

티스토리툴바