본문 바로가기

JPA 프로그래밍

[자바 ORM 표준 JPA 프로그래밍] 실전 예제3 - 다양한 연관관계 매핑( 4/4 )

- 배송, 카테고리 추가

1. 엔티티

  • 주문과 배송은 1:1( @OneToMany )
  • 상품과 카테고리는 N:M( @ManyToMany )

2. ERD

  • 다대다( N:M )연관관계를 추천하지는 않지만 예제를 보여주기 위해서 'CATEGORT_ITEM' 테이블을 생성했습니다.

3. 엔티티

 

- N:M 관계는 1:N, N:1로

  • 테이블의 N:M 관계는 중간 테이블을 이용해서 1:N, N:1으로 변경해야한다.
  • 실무에서는 중간 테이블이 단순하지 않다.
  • @ManyToMany는 제약
    • 필드 추가 X
    • 엔티티 테이블 불일치
  • 실무에서는 @MaynToMany 사용 X

 

 

 

- 테이블이 올바르게 생성되지 않을 경우

기존 테이블들 삭제

DROP TABLE IF EXISTS ORDERS CASCADE;
DROP TABLE IF EXISTS ITEM CASCADE;
DROP TABLE IF EXISTS MEMBER CASCADE;
DROP TABLE IF EXISTS CATEGORY CASCADE;
DROP TABLE IF EXISTS CATEGOTY_ITEM CASCADE;
DROP TABLE IF EXISTS DELIVERY CASCADE;
DROP TABLE IF EXISTS MEMBERPRODUCT  CASCADE;
DROP TABLE IF EXISTS ORDERITEM CASCADE;
DROP TABLE IF EXISTS PRODUCT CASCADE;

 

- 연관관계 주요속성 정리

1. @ManyToOne

  • 다대일 관계 매핑
    • mappedBy가 없으므로 항상 연관관계의 주인이 되어야 한다.

 

2. @OneToMany

  • 다대일 관계 매핑

 

 

출처

https://www.inflearn.com/course/ORM-JPA-Basic/dashboard

 

자바 ORM 표준 JPA 프로그래밍 - 기본편 - 인프런 | 강의

JPA를 처음 접하거나, 실무에서 JPA를 사용하지만 기본 이론이 부족하신 분들이 JPA의 기본 이론을 탄탄하게 학습해서 초보자도 실무에서 자신있게 JPA를 사용할 수 있습니다., 본 강의는 자바 백엔

www.inflearn.com