본문 바로가기

JPA

[JPA] 연관관계 매핑

📌 연관관계 매핑

엔티티(Entity) 들은 서로 관계를 맺고 있다. 게시판(Board)에 댓글(Comment)을 달 수 있고, 하나의 게시글은 여러 개의 댓글을 가질 수 있다. 이러한 관계를 1대 N의 관계라고 하며 각각의 엔티티들이 어떤 관계를 맺는지 파악하는 것이 중요하다.

📌 연관 관계 정의 규칙

  • 연관 관계를 매핑할 때, 생각해야 하는 3가지

💡 방향

단방향 관계 : 두 엔티티가 관계를 맺을 때, 한쪽의 엔티티만 참조하는 것을 의미한다.
양방향 관계 : 두 엔티티가 관계를 맺을 때, 양 쪽이 서로 참조하고 있는 것을 의미한다.

💡 다중성

  • 관계에 있는 두 엔티티는 다음 중 하나의 관계를 갖는다.
    • Many To One = 다대일 (N:1)
      • ex) 음식점 주인 여러 명이 하나의 음식점을 가지고 있을 때
    • One To Many = 일대다 (1:N)
      • ex) 장바구니에 여러 개 선택 가능할 때
    • One To One = 일대일 (1:1)
      • ex) 어플로 음식 주문 시, 쿠폰 1개만 적용 가능할 때
    • Many To Many = 다대다 (N:N)
      • ex) 한 명의 학생이 여러 수업을 수강하고, 한 수업은 여러 학생을 수용할 때
  • 연관 관계는 대칭성을 갖는다.
    • 일대다 = 다대일
    • 일대일 = 일대일
    • 다대다 = 다대다

💡 연관 관계의 주인 (Owner)

  • 연관 관계에서 주인을 결정한다. 두 테이블에 대해서 외래 키(FK)를 갖는 테이블이 연관 관계의 주인이 된다.

'JPA' 카테고리의 다른 글

[JPA] ORM (Object-Relational Mapping) 알아보기  (0) 2023.06.14