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

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

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

회원 엔티티와 상품 엔티티를 @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;

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