📌 1. 연관관계의 주인에 반드시 값을 입력
사실 순수 객체 관점에서는 주인 & 역방향 모두에 값을 입력하는 것이 안전
TeamMapping team = new TeamMapping();
team.setName("teamA");
em.persist(team);
MemberMapping member = new MemberMapping();
member.setUsername("member1");
//연관관계 주인쪽 값 입력(외래키 관리)
member.setTeam(team);
//역방향에도 값 입력(저장시 사용되지 X)
team.getMembers().add(member);
em.persist(member);
📌 2. 연관관계 편의 메소드 사용
TeamMapping team = new TeamMapping();
team.setName("teamA");
em.persist(team);
MemberMapping member = new MemberMapping();
member.setUsername("member1");
//편의 메소드는 주인 & 역방향 둘 중 하나 택1하여 사용
member.changeTeam (team); //** 주인쪽 값 입력 => 연관관계 편의 메소드
team.addMember(member); //** 역방향 값 입력 => 연관관계 편의 메소드
em.persist(member);
- (1)주인쪽 연관관계 편의 메소드
public void changeTeam(TeamMapping team) {
this.team = team;
team.getMembers().add(this);
}
- (2)역방향 연관관계 편의 메소드
public void addMember(MemberMapping member) {
member.setTeam(this);
members.add(member);
}
📌 3. 무한루프 조심