관계형 데이터베이스는 정규화된 테이블 2개로 다대다 관계를 표현할 수 없다.

학원_4-페이지-33_94.jpg

장바구니 테이블 처럼 보통 중간에 연결 테이블을 추가해야 다대다 관계를 일대다 ,다대일 관계로 풀어 낼 수 있다.

학원_4-페이지-33_95.jpg

그런데 객체는 테이블과 다르게 다대다 관계를 표현 할 수 있다.

학원_4-페이지-33_96.jpg

다대다:단방향

회원 엔티티와 상품 엔티티를 @ManyToMany로 매핑한다.

여기서 중요한 것은 @ManyToMany와@JoinTable을 사용해서 연결 테이블을 바로 매핑한것이다.

@ManyToMany
@JoinTable(name="user_item",
            joinColumns=@JoinColumn(name="MEMBER_ID"),
           inverseJoinColumns=@JoinColumn(name="item_ID"))
private List<Product> products =new ArrayList<Product>();
@Id @Column(name="item_no")
private String id;  

Untitled

JoinTable.name

연결 테이블을 지정한다. 여기서는 user_item테이블을 선택했다.

@JoinTable.joinColumn

@JoinTable.inverseJoinColumns