다대일 @ManyToOne
방향 정리
- 테이블은 방향 개념이 없음. 객체는 참조용 필드가 있어야해서 단방향, 양방향
- 객체 양방향은 참조가 2군데이므로 연관관계의 주인을 정해야함.
다대일 단방향
- 다 쪽에 외래키가 있어야함. 외래키 있는 쪽이 연관관계의 주인이 됨.
다대일 양방향
- 연관관계 반대쪽에서 조회용으로 추가
일대다 @OneToMany
- 굉장히 복잡, 객체지향적으로 손해를 보더라도 다대일 단방향을 양방향으로 바꾸는 식으로 짜는 편
- JoinColumn을 넣지 않으면 JoinTable(default mode) 방식으로 바뀌어서 운영이 어려움
- 읽기 전용으로 @JoinColumn(name = "TEAM_ID", insertable=false, updatable=false)
- 따라서 일대다 단방향보다는 다대일 양방향 매핑을 사용하는 것 권장