📌 연관관계 매핑
엔티티(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) 한 명의 학생이 여러 수업을 수강하고, 한 수업은 여러 학생을 수용할 때
- Many To One = 다대일 (N:1)
- 연관 관계는 대칭성을 갖는다.
- 일대다 = 다대일
- 일대일 = 일대일
- 다대다 = 다대다
💡 연관 관계의 주인 (Owner)
- 연관 관계에서 주인을 결정한다. 두 테이블에 대해서 외래 키(FK)를 갖는 테이블이 연관 관계의 주인이 된다.
'JPA' 카테고리의 다른 글
[JPA] ORM (Object-Relational Mapping) 알아보기 (0) | 2023.06.14 |
---|