Spring & Spring Boot/Spring
[JPA] 연관관계 매핑 기초 (1) 단방향 연관관계
Serina_Heo
2023. 4. 9. 16:25
1. 연관관계 매핑을 이해하기 위한 기초
- 방향(Direction): [단방향, 양방향]
- 다중성(Muliplicity) : [다대일(N:1), 일대다(1:N), 일대일(1:1), 다대다(N:M)]
- 연관관계의 주인(Owner): 객체를 양방향 연관관계로 만들려면 연관관계의 주인을 정해야함
2. 단방향 연관관계
- 객체 연관관계 vs. 테이블 연관관계
- 객체는 참조(Reference)로 연관관계를 맺음 -> 참조를 통한 연관관계는 언제나 단방향임. 즉, 양뱡향이라는 것도 서로 다른 단뱡향 2개를 양방향으로 보이게 만드는 것
- 테이블은 외래 키(Foreign Key)로 연관관계를 맺음
// 단방향
class A {
B b;
}
class B { }
// 양방향
class A {
B b;
}
class B {
A a;
}
- 객체 관계 매핑 (다대일(N:1), 단방향)
@Entity
public class Member {
@Id
@Column(name = "MEMBER_ID")
private Long id;
private String username;
// 연관관계 매핑
@ManyToOne // 다(Member)대일(Team)
@JoinColumn(name = "TEAM_ID") // 외래키를 매핑할 때 쓰는 annotation. 매핑할 외래키 이름을 씀
private Team team;
// 연관관계 설정
public void setTeam(Team team) {
this.team = team;
}
// Getter, Setter...
}
@Entity
public class Team {
@Id
@Column(name = "TEAM_ID")
private Long id;
private String name;
// Getter, Setter...
}
Reference : 자바 ORM 표준 JPA 프로그래밍 (김영한 저)