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

본문에 앞서 예시를 하나 들겠다. 다음과 같이 멤버 엔티티와 팀 엔티티가 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"..
- Total
- Today
- Yesterday
- git
- 파이썬 for Beginner 솔루션
- Spring Boot
- 지옥에서 온 git
- 방명록 프로젝트
- 김영환
- Computer_Networking_A_Top-Down_Approach
- JPA
- 쉽게 배우는 운영체제
- Spring
- jsp
- git branch
- 파이썬 for Beginner 연습문제
- Spring Data JPA
- Gradle
- Thymeleaf
- git merge
- Do it! 정직하게 코딩하며 배우는 딥러닝 입문
- 프로그래머스
- 쉘 코드
- 운영체제 반효경
- 패킷 스위칭
- Python Cookbook
- 스프링 테스트
- 스프링 컨테이너
- 스프링 mvc
- 선형 회귀
- fetch join
- 스프링
- 생활코딩 javascript
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |