Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- form login
- spring jpa
- jpa
- @MappedSuperclasss
- 기본값 타입
- 상속관계 매핑
- 값 타입 컬렉션
- TABLE
- 기본 키 매핑
- 세션 생성 정책
- 다대다
- Database
- MySQL
- 양방향 매핑
- field column mapping
- 동시 세션 제어
- 임베디드 타입
- ddl-auto
- 지연 로딩
- Spring Security
- 값 타입 비교
- JPQL
- SessionManagementFilter
- AnonymousAuthenticationFilter
- orphanRemovel
- 세션 고정 보호
- 즉시 로딩
- 객제지향 쿼리 언어
- Remember-me
- concurrentsessionfilter
Archives
- Today
- Total
hoondev
[Spring JPA] 다대다 관계 본문
다대다 관계의 문제점
관계형 db는 다대다 관계를 테이블 2개로 표현하지 못한다.
연결 테이블을 추가해서 일대다 다대일 관계로 풀어내야 한다.
하지만 객체에서는 컬렉션을 이용해 객체 2개만으로 다대다 관계를 구현할 수 있다.
하지만 이 방법은 실무에서 사용하면 안된다.
@ManyToMany 어노테이션으로 다대다 관계를 구현하면 테이블엔 자동으로 연결 테이블이 생성된다.
이 연결테이블은 매핑되지 않았기 때문에 우리가 원하는 컬럼을 매핑할 수 없다.
그리고 연결 테이블 때문에 쿼리가 자신이 생각하지 못한 쿼리가 나갈수 있다는 점도 있다.
다대다 관계 문제 해결
다대다 관계의 한계를 극복하는 점은 연결 테이블용 엔티티를 하나 더 많드는 것이다.
예를 들어 Member와 Product의 다대다 관계를 Member, MemberProduct, Product로 풀어내는 것이다.
이렇게 하면 다대다 관계를 일대다, 다대일 관계로 풀어낼 수 있다.
Reference
'Spring JPA' 카테고리의 다른 글
[Spring JPA] @MappedSuperclass (0) | 2023.01.31 |
---|---|
[Spring JPA] 상속관계 매핑 (0) | 2023.01.30 |
[Spring JPA] 일대일 관계 (0) | 2023.01.28 |
[Spring JPA] 일대다 관계 (0) | 2023.01.27 |
[Spring JPA] 다대일 관계 (0) | 2023.01.26 |
Comments