Springboot

[Springboot] 관계 매핑(ORM; Object Relational Mapping) N:M

KJihun 2023. 7. 7. 10:19
728x90

외래키의 주인은 1:N, N:1에선 1이고 N이 가지고 있는다.

 

N:M 

직접 연관을 맺으면 안된다. 가운데에 테이블을 하나 더 생성하여 테이블을 거쳐 관계를 맺어야 한다.

N : 1 : M 형식이 된다

예시: 여러 메뉴(N)를 가지는 식당과 여러 손님(M) 사이의 주문(1) 

 

 

중간 테이블인 Order테이블

@ManyToOne
@JoinColumn(name = "user_id")
private User user;

@JoinColumn: 외래키를 매핑할 때 사용. 저장시 user_id라는 릴레이션(튜플)에 저장한다.

users(손님) 테이블

@OneToMany(mappedBy = "user")
private List<Order> orderList = new ArrayList<>();

mappedBy: 타겟 엔티티(Order)의 변수명(user)을 작성하여 데이터를 저장한다.

 

 

 

'Springboot' 카테고리의 다른 글

[Springboot] CORS란?  (2) 2023.07.15
[Springboot] Handler, @ExceptionHandler, @ControllerAdvice  (1) 2023.07.11
[Springboot] Security  (0) 2023.07.01
[Springboot] Filter와 Spring Security  (0) 2023.06.30
[Springboot] login 구현  (0) 2023.06.29