다대다
다대다 매핑의 한계 매핑 정보만 들어가고 수정하는 데이터가 들어갈 수 없음.
@ManyToMany 사용 : 중간 테이블을 생성하면 가능하기도 함 @JoinTable로 연결 테이블 지정 가능 PK가 2개 = MEMBER_ID, PRODUCTID로 하고 각각 FK로 사용 =>애플리케이션은 계속해서 변하고 수정해야하는데 ID가 어딘가에 종속적이면 제약사항들이 많아진다.
그렇기 때문에 이렇게 PK를 2개 설정하는 것보다 GeneratedValue로 생성되는 id 값을 PK로 잡고, MEMBER_ID, PRODUCTID 는 FK로 잡는 것이 나중에 확장성이 좋다! 변경가능성이 있기 때문이다! 나중에 필요하다면 제약조건을 추가하면 된다.
다대다 한계 극복
연결 테이블용 엔티티 추가(연결 테이블을 엔티티로 승격) @ManyToMany -> @OneToMany, @ManyToOne
Last updated