먼저 앞장의 내용을 복습하고 넘어가자
엔티티 연관관계 매핑시 주의점 3가지
다중성
방향성
연관관계의 주인 ( 외래키를 가지고 있는 쪽을 주인으로 설정 하며 주인의 쪽은 CRUD가 가능하지만 반대 쪽은 읽기만 가능하다 )
☝️ 양방향은 외래 키가 있는 쪽인 연관관계의 주인
☝️ 양방향 연관관계는 항상 서로를 참조 해야한다 ( 양쪽 모두 연관관계 편의 메소드를 줄시 무한루프에
빠지게 되므로 주의 하자 )
@OneToMany(mappedBy = "team")
private List<Member> members = new ArrayList<Member> ();
일대다 단방향 매핑의 단점
주 테이블에 외래키
외래키를 객체 참조와 비슷하게 사용이 가능해 객체지향 개발자들이 선호하며, 주테이블만 확인해도 대상테이블의 연관관계를 알수있다.
대상 테이블에 외래키
DB개발자들이 선호하며 장점은 일대일에서 일대다로 변경시 그대로 유지가 가능하다는 점이다.
다대다 매핑의 한계와 극복
다대다 매핑을 사용하면 연결 테이블을 자동으로 처리해주므로 편리하지만 실무에서 사용하는데는 한계가 있다.
ex) 회원이 상품을 주문시 테이블에 단순히 주문한 아이디와 상품 아이디만 담고 끝내는것이 아니라 부가적인 정보가 필요하다.
따라서 위와 같이 일대 다, 다대일로 풀어서 쓰도록 하자.