💾 양방향 연관관계 저장

//팀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은 연관관계의 주인이다.

엔티티 매니저는 이곳에 입력된 값을 이용해서 외래키를 관리한다.