소스 코드는 여기 있습니다. (commit hash: 6695e56) > git clone https://github.com/lcalmsky/jpa > git checkout 6695e56 Overview 다양한 연관관계에 대해 알아봅니다. 연관관계 매핑시 고려해야할 사항이 3가지가 있습니다. 방향(단방향, 양방향) 연관관계의 주인 다중성 이중 두 가지는 이미 이전 포스팅에서 살펴보았으므로 다중성에 대해 알아보겠습니다. 다중성 사실 다중성도 이전 포스팅에서 다루긴했지만 다시 한번 개념을 정리해보겠습니다. DB 관점에서의 다중성을 말합니다. JPA는 객체를 테이블에 매핑하기 위해 다양한 애너테이션을 사용하는데 이 중 다중성에 해당하는 애너테이션은 다음과 같습니다. @ManyToOne: 다대일 @OneToM..
소스 코드는 여기 있습니다. (commit hash: 0bacabb) > git clone https://github.com/lcalmsky/jpa > git checkout 0bacabb Overview 연관관계 매핑 예제를 구현합니다. 테이블 구조 객체 구조 구현 테이블 구조에서 확인했다시피 FK를 가지는 테이블은 orders, order_item 두 가지이고, 객체 기준으로는 Order, OrderItem이 연관관계의 주인이 됩니다. 따라서 Order가 Member를 @ManyToOne으로 가지고, @JoinColumn(name = "member_id")을 사용해 join 할 수 있습니다. OrderItem이 Order를 @ManyToOne으로 가지고, @JoinColumn(name = "order..
소스 코드는 여기 있습니다. (commit hash: e336ad7) > git clone https://github.com/lcalmsky/jpa > git checkout e336ad7 Overview 양방향 연관관계를 설명합니다. 객체 지향 모델링 양방향 연관관계는 객체가 서로 참조할 수 있는 것을 의미합니다. 따라서 객체간의 관계는 아래 처럼 나타낼 수 있습니다. 테이블 연관관계는 이전과 동일합니다. DB에서는 team_id 만으로도 Member를 찾을 수 있기 때문입니다. 테이의 연관관계에는 방향이라는 개념이 없습니다. FK 하나로 충분히 연관관계를 파악할 수 있기 떄문입니다. 양방향 연관관계 구현 이전 포스팅에서 이미 단방향 연관관계를 구현해놓았기 때문에 양방향 관계를 맺기 위해선 Team 쪽..
소스 코드는 여기 있습니다. (commit hash: e336ad7) > git clone https://github.com/lcalmsky/jpa > git checkout e336ad7 Overview 단방향 연관관계를 설명합니다. JPA를 설명하기 위해 포스팅하는 글이지만 스프링 내에서 사용하는 경우가 많아 스프링 부트 프로젝트로 구성하였습니다. 프로젝트를 구성하는 내용은 다른 포스팅에도 그동안 많이 작성하였기 때문에 생략하였습니다. 객체 지향 모델링 저번 포스팅에서와 다르게 객체지향적으로 모델링한 모습은 아래와 같습니다. 객체 연관관계 Member 객체가 Team 객체를 참조하기 위해선 teamId를 가지는 게 아니라 Team 객체를 참조하고 있어야 합니다. 테이블 연관관계 코드로 나타내면 다음과..
- Total
- Today
- Yesterday
- proto3
- 스프링 데이터 jpa
- QueryDSL
- 스프링 부트 회원 가입
- gRPC
- Jackson
- 클린 아키텍처
- JPA
- Spring Data JPA
- Spring Boot
- Spring Boot JPA
- leetcode
- Java
- 함께 자라기
- 스프링 부트 튜토리얼
- JSON
- Spring Boot Tutorial
- 알고리즘
- spring boot jwt
- 함께 자라기 후기
- @ManyToOne
- r
- spring boot application
- intellij
- 스프링 부트 애플리케이션
- 스프링부트
- 헥사고날 아키텍처
- Linux
- 스프링 부트
- spring boot app
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |