[JPA] 다양한 연관관계 매핑 - 다대다

Hocaron·2022년 3월 8일
0

Spring

목록 보기
20/44

다중성

JPA는 객체가 기준이지만, 다중성데이터베이스가 기준이다.
연관 관계는 대칭성을 갖는다.

다대다

실무 사용 금지 ❌

  • 중간 테이블이 숨겨져 있기 때문에 자기도 모르는 복잡한 조인의 쿼리(Query)가 발생하는 경우가 생길 수 있다.
  • 다대다로 자동생성된 중간테이블은 두 객체의 테이블의 외래 키만 저장되기 때문에 문제가 될 확률이 높다. JPA를 해보면 중간 테이블에 외래 키 외에 다른 정보가 들어가는 경우가 많기 때문이다.
    🙋‍♀️ 예로, 회원과 상품 테이블이 있다고 가정해보자. 회원이 상품을 주문하면, 연결테이블에 단순히 주문한 회원 아이디와 상품 아디이만 담고 끝나지 않는다. 보통은 연결 테이블에 주문 수량 컬럼이나 주문한 날짜 같은 컬럼이 더 필요하다.

그래서, 다대다일대다, 다대일로 풀어서 만드는 것(중간 테이블을 Entity로 만드는 것)이 추후 변경에도 유연하게 대처할 수 있다.

References

profile
기록을 통한 성장을

0개의 댓글