자바 ORM 표준 JPA 프로그래밍(인프런)

Ch05. 연관관계 매핑 기초 - 실전 예제(연관관계 매핑 시작)

webmaster 2021. 12. 12. 13:17
728x90

테이블 구조
객체 구조

  • 단방향 연관관계를 먼저 잘 정하는 것이 제일 중요하다.
  • 상품 입장에서는 주문이 그렇게 중요하지 않다(따라서 OrderItem과 Item은 단방향)

Member Entity

Member Entity, orders 같은경우 연관관계의 주인이 아니므로 mappedby 옵션 추가

  • 양방향 연관관계가 설정되었다.
  • 사실 비지니스 적으로 member에서 상품을 양방향으로 설정할 일이 없다.
  • 이렇게 설계하면 잘못 설계된 케이스이지만 예제니까 현재 양방향으로 설정한다.

Order Entity

Order Entity

  • member 같은 경우 연관관계의 주인임으로 mappedby 옵션을 걸지 않는다.
    • @JoinColumn을 통해 외래키로 설정될 이름을 적어준다( 없으면 mapping  테이블을 생성한다)
  • orderItems 같은경우 연관관계의 주인이 아니므로 mappedby 옵션을 추가한다.

OrderItem Entity

OrderItem Entity

  • order 같은경우 연관관계의 주인임으로 mappedby 옵션을 걸지 않는다.
  • item 같은경우 연관관계의 주인임으로 mappedby 옵션을 걸지 않는다.

Test

Test

  • 연관관계 편의 메서드를 만들어 양방향 연관관계를 실행하고(addOrderItem), 사실 단방향으로 모든 걸 할 수 있으므로 설계 시에는 단방향으로 모든 것을 설계한 뒤, 개발하면서 양방향 관계를 설정하여라
728x90