
ManyToMany JPA 가 직접 만들어주는 엔터티와 테이블 말고, 우리가 직접 엔터티를 만들고, 테이블을 생성하고자 할 때가 있다. 시나리오. 사용자 정보를 저장하는 User가 있다. 사용자는 다양한 클럽에 가입할 수 있다. 클럽을 저장하는 Club가 있다. Club도 여러 사용자를 가질 수 있다. 클럽에 포함된 사용자를 나타내는 ClubUsers가 있다. ClubUsers 는 유저의 점수, 상태를 저장할 수 있다. 이러한 시나리오가 전형적인 M:N 관계이다. 이러한 관계는 연관 테이블을 생성하여 비즈니스 니즈를 해결하는 것이 일반적이다. 또한 M:N 이면서 해당 ClubUsers 만의 별도의 속성을 가지고자 할 때 우리가 생성한 ClubUser를 직접 컨트롤 할 수 있다. 위 다이어그램에서 보는 바..

ManyToMany 관계형 데이터베이스를 이용하다보면 ManyToMany 관계를 종종 만들어야 할 때가 있다. 시나리오. 사용자 정보를 담고 있는 User 가 있다. 시스템의 다양한 사용정보를 정의한 Role 이 있다. 사용자는 다양한 Role 을 가질 수 있다. Role 은 여러 사용자에 할당 될 수 있다. 이러한 시나리오가 전형적인 M:N 관계이다. 이러한 관계는 연관 테이블을 생성하여 비즈니스 니즈를 해결하는 것이 일반적이다. 위 다이어그램에서 보는 바와 같이 user_id, role_id 를 각각 가진 user_role 이라는 테이블으 생성 되었고. user : user_role = 1 : N 관계가 형성이 된다. role : user_role = 1 : N 관계가 형상이 된다. 이렇게 중간 테이..

OneToMany 이제는 OneToMany 를 알아볼 차례이다. DB 모델링중 가장 일반적인 케이스인 OneToMany 를 JPA 에서 어떻게 구현하는지 확인해보자. 시나리오. User를 만들었고, User 로 등록된 사람은 Board를 작성할 수 있다고 해보자. User는 여러개의 Board Content를 작성할 수 있다. User:Board = 1:N 관계가 성립된다. Board 속성 작성하기. 게시판의 가장 기본적인 테이블 구조는 다음과 같다. id: 게시판 아이디 category: 게시물 카테고리 (GENERAL, BOARD, NOTICE) title: 게시물 제목 contents: 게시물 내용 user_id: 작성자 아이디 readCount: 조회수 goodCount: 좋아요 횟수 badCou..
OneToOne Bidirection 매핑 OneToOne Unidirection 매핑을 지금까지 해보았다. UniDirection User가 UserDetail 를 포함하고 있는구조. User 에서 UserDetail 을 참조할 수 있다. UserDetail 에서 User를 접근할 수 없음 DB 조회시 User 를 조회하고, 필요시 UserDetail 을 Lazy Loading 해서 조회할 수 있다. Bidirection User가 UserDetail 를 포함하는 구조. UserDetail 이 User 을 포함하는 구조. User 에서 UserDetail 을 참조할 수 있다. UserDetail에서 User 을 참조할 수 있다. DB 조회시 User 를 조회하고, 필요시 UserDetail 을 Lazy..

Mapping JPA Entity 작성에 대해서 간단히 알아 보았으니 이제는 Mapping 에 대해서 살펴 보자. JPA 는 기본적으로 Relation Database 를 활용하도록 설계 되어 있다. 객체와 관계형 데이터베이스를 매핑 하는 것을 ORM(Object Relation Mapping) 이라고 하며, 이러한 데이터베이스의 관계를 객체도 동일하게 적용하기 위해서 Mapping 이라는 방법을 이용한다. 이번 아티클에서는 User 엔터티를 이용하여 One To One 매핑을 진행해 볼 것이다. One To One Mapping UserInfo 이라는 엔터티가 있다. UserInfo 은 사용자의 기본정보를 저장한다고 해보자. Id: 사용자 아이디 Name: 사용자 이름 Birth: 생년월일 YYYYMM..
- Total
- Today
- Yesterday
- Database
- java
- Terraform
- deploy
- go
- tfsec
- springboot
- Kafka
- Gorilla
- jenkins
- gitops
- kubernetes
- argocd
- MongoDB
- AWS
- docker
- kafka-springboot
- declative
- NodeSelector
- MySQL
- Spring
- jpa
- docker-compose
- mapping
- kubectl
- D3
- CI
- mongo
- CD
- Golang
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |