//팀1, 회원1, 회원2 저장public void testSave(){ //팀1 저장 Team team1 = new Team("team1", "팀1"); em.persist(team1); //회원1 저장 Member member1 = new Member("member1", "회원1"); member1.setTeam(team1); //연관관계 설정 member1 -> team1 em.persist(member1); //회원2 저장 Member member2 = new Member("member2", "회원2"); member2.setTeam(team1); //연관관계 설정 member2 -> team1 em.persist(member2);}
단방향 연관관계에서 회원과 팀을 저장하는 코드와 완전히 같다.
양방향 연관관계는 연관관계의 주인이 외래키를 관리하기 때문에
주인이 아닌 방향은 값을 설정하지 않아도 데이터베이스에 외래키 값이 정상 입력된다.
team1.getMembers().add(member1); //무시(연관관계의 주인이 아님)team1.getMembers().add(member2); //무시(연관관계의 주인이 아님)
Team.members는 연관관계의 주인이 아니다.
주인이 아닌 곳에 입력된 값은 외래키에 영향을 주지 않는다.(무시됨)
member1.setTeam(team1); //연관관계 설정(연관관계의 주인)member2.setTeam(team1); //연관관계 설정(연관관계의 주인)
Member.team은 연관관계의 주인이다.
엔티티 매니저는 이곳에 입력된 값을 이용해서 외래키를 관리한다.