Spring-boot JPA @ManyToMany 실무에서 사용하면 안되는 이유
Infrean에서 JPA 관련 활용수업을 듣던중 @ManyToMany라는 어노테이션을 마주친 적이 있다. 도메인 모델은 다음과 같다. 카테고리는 여러개의 상품들과 매핑되고 상품은 여러개의 카테고리를 가질 수 있으므로 @ManyToMany를 사용하는 예제이다. @ManyToMany 는 편리한 것 같지만, 중간 테이블( CATEGORY_ITEM )에 컬럼을 추가할 수 없고, 세밀하게 쿼리를 실행하기 어렵기 때문에 실무에서 사용하기에는 한계가 있다. 중간 엔티티( CategoryItem 를 만들고 @ManyToOne , @OneToMany 로 매핑해서 사용하자. 정리하면 다대다 매핑을 일대다, 다대일 매핑으로 풀어 내서 사용하자.