- @JoinColumn을 명시해야 함. 그렇지 않으면 JoinTable 전략을 사용하게 됨
단점
- 엔티티가 관리하는 외래 키가 다른 테이블에 있음 (원래는 Many에 외래키 존재)
- 본인 테이블에 외래 키가 있으면 엔티티의 저장과 연관관계 처리를 INSERT SQL 한번으로 끝낼 수 있지만, 다른 테이블에 외래 키가 있으면 연관 관계 처리를 위한 UPDATE SQL을 추가로 실행해야 함
- 개발을 하다 보면 B를 만졌는데 A도 update sql문이 나가니 헷갈린다 → Team 데이터를 삽입하고 해당하는 연관관계에 대한 처리를 위해서 Member쪽도 손을 봐야 하니 Team과 Member 둘 다에 대해 sql이 나가는 것
- 그래서 필요하다면 일대다 보다는 양방향 관계로 한다. ( B는 A가 필요 없더라도, 객체 지향적으로 손해를 보는 거 같지만) - 트레이드 오프
근데, 양방향으로 할 시, 연관관계의 주인에서 연관관계 세팅을 해주어야 한다는 귀찮음이 있음!
- 원래 @OneToMany 단방향에서 cascade를 써버리면 손쉽게 db 영속화 하는 것이 가능함
- 그러나 양방향으로 만들어 버리면 외래키 관리를 member에서 하기에 연관관계 설정 코드가 추가적으로 붙어야 함