본문 바로가기

JPA 프로그래밍

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

1. 다대다 [ N : M ]

  • 실무에서는 쓰면 안된다고 합니다.
  • 관계형 데이터베이스는 정규화된 테이블 2개로 다대다 관계를 표현할 수 없음
  • 연결 테이블을 추가해서 일대다, 다대다 관계로 풀어내야함
  • 테이블

  • 객체
    • 객체는 컬렉션을 사용해서 객체 2개로 다대다 관계 가능

  • @ManyToMany 사용
  • @JoinTable로 연결 테이블 지정
  • 다대다 매핑
    • 단방향, 양방향 가능

 

- 다대다 매핑의 한계

  • 편리해 보이지만 실무에서 사용 X
  • 연결 테이블이 단순히 연결만 하고 끝나지 않음
  • 주문시간, 수량 같은 데이터가 들어올 수 있음

 

 

- 다대다 매핑의 한계 극복

  • 연결 테이블용 엔티티 추가( 연결 테이블을 엔티티로 승격 )
  • @ManyToMany -> @OneToMany, @ManyToOne

  • '다대다 매핑의 한계' 사진처럼 'MEMBER_ID'와 'PRODUCT_ID'를 묶어서 PK로 지정하기 보다는, 위 사진처럼 ORDER테이블에 'ORDER_ID'로 별도의 PK를 지정하는 방식을 추천한다고 합니다.
    • 애플리케이션 유연성 증가
    • 모든 테이블에 일관성 있게 GENERATE VALUE 생성
    • JPA 매핑 심플

 

 

 

출처

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

 

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

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

www.inflearn.com