자바/JPA
[6단원] 다대다 : 연결 엔티티 사용
OverTheHorizon3410
2023. 11. 4. 20:11
개요
@ManyToMany
를 사용하면, 연결 테이블의 관리를 자동화하여 도메인 모델의 단순화를 가능하게 함
하지만,
- 실무에서는 이러한 매핑을 그대로 사용하지 않는다.
- 회원이 상품을 주문하는 경우
- 연결 테이블에 회원 아이디와 상품의 아이디만 저장하는 케이스만으로 충분치 않음.
- 주문 수량, 주문 날짜 등과 같은 추가 정보가 필요하다..
연결 테이블에 필드를 추가
- 연결 테이블을 직접 매핑하는 연결 엔티티를 별도 생성
- 해당 엔티티에 추가 필드를 매핑해야함.
- Member 엔티티에서..
@OneToMany(mappedBy = "member")
private List<MemberProduct> memberProducts = new ArrayList<>();
- MemberProduct 연결 엔티티까지
@Getter
@Setter
@Entity
@Table(name = "MEMBER_PRODUCT")
public class MemberProduct {
@Id
@Column(name = "PRODUCT_ID", nullable = false)
private String id;
@ManyToOne
@JoinColumn(name = "memberProducts")
private Member member;
}
Uploaded by N2T