[6단원] 다대다 : 연결 엔티티 사용

개요

  • @ManyToMany 를 사용하면, 연결 테이블의 관리를 자동화하여 도메인 모델의 단순화를 가능하게 함

하지만,

  • 실무에서는 이러한 매핑을 그대로 사용하지 않는다.
  • 회원이 상품을 주문하는 경우
    • 연결 테이블에 회원 아이디와 상품의 아이디만 저장하는 케이스만으로 충분치 않음.
    • 주문 수량, 주문 날짜 등과 같은 추가 정보가 필요하다..

연결 테이블에 필드를 추가

  • 연결 테이블을 직접 매핑하는 연결 엔티티를 별도 생성
  • 해당 엔티티에 추가 필드를 매핑해야함.
  • Member 엔티티에서..
@OneToMany(mappedBy = "member")
    private List<MemberProduct> memberProducts = new ArrayList<>();
  • MemberProduct 연결 엔티티까지
@Getter
@Setter
@Entity
@Table(name = "MEMBER_PRODUCT")
public class MemberProduct {
    @Id
    @Column(name = "PRODUCT_ID", nullable = false)
    private String id;
    
    @ManyToOne
    @JoinColumn(name = "memberProducts")
    private Member member;
}


Uploaded by N2T