1. 연관 관계 정의규칙
- 방향 : 단방향, 양방향 (객체 참조)
- 연관 관계의 주인 : 양방향일 때, 연관 관계에서 관리 주체
- 다중성 : 다대일(N:1), 일대다(1:N), 일대일(1:1), 다대다(N:M)
+) 무조건 양방향으로 하는 것이 좋은가?
구분하기 좋은 기준은 기본적으로 단방향 매핑으로 하고 나중에 역방향으로 객체 탐색이 꼭 필요하다고 느낄 때 추가하는 것으로 잡으면 됩니다.
다른 엔티티들도 불필요한 연관관계 매핑으로 인해 복잡성이 증가할 수 있음
2. 연관 관계의 주인
두 단방향 관계(A→B, B→A)중, 제어의 권한(외래 키를 비롯한 테이블 레코드를 저장, 수정, 삭제 처리)을 갖는 실질적인 관계가 어떤 것인지 JPA에게 알려줘야 함
연관 관계의 주인이 아닌 객체에서 mappedBy 속성을 사용해서 주인을 지정
3. 종류
- 다대일(N:1)
- 다대일(N:1) 단방향
- 다대일(N:1) 양방향
- 일대다(1:N) ->문제가 많다.
- 일대다(1:N) 단방향
- 1 대 N 관계에서는 일반적으로 양방향 관계가 존재하지 않음
- 일대일(1:1)
- 일대일(1:1) 단방향
- 일대일(1:1) 양방향
- 다대다(N:N)
- N : M 관계를 풀어내기 위해 중간 테이블(orders)을 생성하여 사용
- 다대다를 일대다, 다대일로 풀어서 만드는 것(중간 테이블을 Entity로 만드는 것)이 추후 변경에도 유연하게 대처
출처 : https://jeong-pro.tistory.com/231
'TIL' 카테고리의 다른 글
[TIL] 20240131 Spring security JWT 필터 (0) | 2024.01.31 |
---|---|
[TIL] 20240130 JPA 지연로딩, 영속성 전이 (0) | 2024.01.30 |
[TIL] 20240125 Spring security 기본 (0) | 2024.01.25 |
[TIL] 20240124 Web 인증방식 - 쿠키세션, JWT (0) | 2024.01.24 |
[TIL] 20240123 REST API request 방식 (0) | 2024.01.23 |