티스토리 뷰

dev_공부일지/JPA 기본

다대다 [N:M]

dev_0hoon 2024. 2. 2. 13:28

 

** 실무에서는 쓰면 안된다.

 

다대다

- 관계형 데이터 베이스는 정규화된 테이블 2개로 다대다 관계를 표현할 수 없음

- 연결 테이블을 추가해서 일대다, 다대일 관계로 풀어내야함

- 객체는 컬렉션을 사용해서 객체 2개로 다대다 관계 가능

 

인프런 - 김영한 JPA  강의 중

 

@ManyToMany

Member class

@ManyToMany
@JoinTable(name = "MEMBER_PRODUCT")
private List<Product> products = new ArrayList<>();

 

Product class

@ManyToMany(mappedBy = "products")
private List<Member> members = new ArrayList<>();

 

 

한계

- 편리해 보이지만 실무에서 사용x

- 연결 테이블이 단순히 연결만 하고 끝나지 않음

- 주문시간, 수량 같은 데이터가 들어올 수 있음

인프런 - 김영한 JPA 강의 중

 

다대다 한계 극복

- 연결 테이블용 엔티티 추가 (연결 테이블을 엔티티로 승격)

- @ManyToMany -> @OneToMany , @ManyToOn

 

인프런 - 김영한 JPA 강의 중

 

'dev_공부일지 > JPA 기본' 카테고리의 다른 글

@MappedSuperclass  (0) 2024.02.03
상속관계 매핑  (0) 2024.02.03
일대일 관계  (0) 2024.02.02
다중성 - 다대일과 일대다,  (1) 2024.02.02
양방향 매핑시 가장 많이 하는 실수  (0) 2024.02.01
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함