테이블은 TEAM의 PK가 곧 Member의 FK이므로 하나로 이루어 진 관계이다.
하지만 객체로 연관 관계를 설정 한다면
사실상 양방향이 아닌 단방향 관계가 두 개로 이루어 져있다.
여기서 오는 패러다임으로 멤버 중심으로 팀을 바꾸고 싶다든가, 팀 중심으로 멤버를 바꾸고 싶다든가
하는 상황이 생긴다.
여기서 이 문제를 해결하기 위해서 우리는 연관관계에서 주인을 정해야하고 규칙이 필요하다.
연관관계의 주인(Owner)
양방향 매핑 규칙
• 객체의 두 관계중 하나를 연관관계의 주인으로 지정
• 연관관계의 주인만이 외래 키를 관리(등록, 수정)
• 주인이 아닌쪽은 읽기만 가능
• 주인은 mappedBy 속성 사용X
• 주인이 아니면 mappedBy 속성으로 주인 지정
연관관계의 주인 설정 기준
- 외래 키가 있는 곳을 주인으로 정하라. (@JoinColumn이 있는 쪽)
많이 하는 실수
- 연관관계의 주인에서 값을 입력하지 않으면 (해당 예에선 Member측에서 Team의 값을 입력 안함) Team_ID가 null 뜬다.
'Spring > 공부' 카테고리의 다른 글
[스프링 부트 3 백엔드 개발자 되기: 자바 편] 책 수정 해야 할 곳(추가 중) (0) | 2023.10.21 |
---|---|
[Spring validation] @Email은 not null일까? (0) | 2023.09.05 |
설정 파일(application.properties, application.yml) profile 변경 법 (0) | 2023.07.19 |
책[스프링부트와 AWS로 혼자 구현하는 웹 서비스] SecurityConfig 작성시 WebSecurityConfigurerAdapter 문제 (0) | 2023.07.14 |
유효성 검사 예제 with jpa (0) | 2023.07.14 |