JPA는 DB 테이블 간의 매핑 관계에 대한 주석을 지원합니다.
이 페이지에서는 N:M 관계를 매핑하는 @ManyToMany 주석에 대해 알아봅니다.
법인
엔터티에서 N:M 관계는 다음과 같이 표현할 수 있습니다.

DB
실제 테이블의 N:M 관계를 표현할 수 없다
N:M 관계를 표현하기 위해 중간에 링크 테이블을 넣어 1:N 및 N:1 관계를 해결하여 표현
아래 이미지에서 N:M 관계인 주문과 품목의 관계는
조인 테이블인 OrderItem 테이블을 1:N, N:1 관계로 풀어 표현한 것을 볼 수 있다.

양방향 관계 적용
1. N:M 관계에서 M의 관계인 Orders to Item 참조 변수 추가

2. ManyToMany 관계 설정 및 mappedBy 속성 추가

@ManyToMany 관계를 사용하면 안 되는 이유
연결된 테이블은 단순히 연결되며 끝나지 않습니다.
@ManyToMany 관계를 설정할 때
JPA에서 다음 이미지와 같이 ORDER_ITEM 조인 테이블을 만듭니다.
ORDER와 ITEM 테이블을 ORDER_ITEM에 연결하기 위한 키 값인 ORDER_ID와 ITEM_ID 외에,
NUM_OF_ITEM(총 구매 수량) 및 TOTAL_PRICE(총 구매 수량) 추가 가능

데이터가 CRUD되면 쿼리가 복잡해지는 문제도 있습니다.
위와 같은 문제점으로 인해 실무에서 자주 사용되지 않으며 사용을 권장하지 않습니다.
@너무해 @ManyToOne 및 @OneToMany로 표현되어야 합니다.
ORDER_ITEM 테이블 ORDER와 ITEM 테이블을 연결하기 위한 핵심 값인 ORDER_ID와 ITEM_ID 외에,
NUM_OF_ITEM(총 구매수량)과 TOTAL_PRICE(총 구매금액)이 추가될 수 있기 때문에
아래와 같이 OrderItem 엔터티를 별도로 생성합니다.
주문 또는 항목 엔터티 @ManyToOne 및 @OneToMany로 표현
