이번에는 저번 장에 이어서 여러관계의 연관관계 매핑에 대해서 알아보려고 한다.
다중성과 방향에 대한 모든 경우를 하나씩 살펴보자.
먼저 다대일에 대한 관계를 먼저 살펴보자.
다대일 방법은 저번 장에 학습했었지만 복습 겸 다시 정리해보자.
@Entity
public class Member {
@Id @GeneratedValue
@Column (name = "MEMBER_ID")
private Long Id;
private String userId;
@ManyToOne
@JoinColumn(name = "TEAM_ID")
private Team team;
// Getter, Setter, Constructor...
}
@Entity
public class Team {
@Id @GeneratedValue
@Column (name = "TEAM_ID")
private Long Id;
private String name;
// Getter, Setter, Constructor...
}
@JoinColumn
으로 할 수 있다.@Entity
public class Member {
@Id @GeneratedValue
@Column (name = "MEMBER_ID")
private Long Id;
private String userId;
@ManyToOne
@JoinColumn(name = "TEAM_ID")
private Team team;
public void setTeam(Team team) {
this.team = team;
if (!team.getMembers().contains(this)){ // 무한루프 방지
team.getMembers().add(this);
}
}
// Getter, Setter, Constructor...
}
@Entity
public class Team {
@Id @GeneratedValue
@Column (name = "TEAM_ID)
private Long Id;
@OneToMany(mappedBy = "team")
private List<Member> members = new ArrayList<Member>();
private String name;
public void addMember(Member member){
this.members.add(member};
if(member.getTeam() != this){ // 무한루프 방지
member.setTeam(this);
}
}
// Getter, Setter, Constructor...
}