단방향 연관 관계

객체 지향적으로 모델링을 하면 Member에는 teamId가 아니라 Team 참조값을 그대로 갖게 된다.
@Entity
public class Member {
private Long id;
@Column(name = "USERNAME")
private String name;
// 이제 FK 대신 객체를 참조하기 위해 삭제한다.
// @Column(name = "TEAM_ID")
// private Long teamId;
// 하나의 팀에 여러 멤버가 소속될 수 있으므로
// Member 입장에서는 many, Team 입장에서는 one
@ManyToOne
// join 하기 위한 FK를 명시해준다.
@JoinColumn(name = "TEAM_ID")
private Team team;
}
@Entity
public class Team {
@Id
@GeneratedValue
private Long id;
private String name;
}

FK 대신 객체를 참조하면서 연관 관계가 매핑되었다.
연관 관계 수정
public class JpaMain() {
public static void main(String[] args) {
...
// 만약 다른 팀으로 바꾸고 싶다면
Team teamB = new Team();
teamB.setName("TeamB");
em.persist(teamB);
// 그냥 다시 새로운 팀으로 넣어주면 된다.
member.setTeam(teamB);
// 그냥 값만 바꾸면 변경 감지해서 update 쿼리가 나간다.
}
}
연관 관계를 수정할 때는 그냥 값만 바꿔 넣어주면 알아서 update 쿼리가 나간다.
Last updated
Was this helpful?