기본 매핑
데이터 중심 설계의 문제점
--> 객체를 테이블에 맞춰 데이터 중심으로 모델링하면, 협력 관계를 만들 수 없다.
테이블은 외래키로 조인하여 연관된 테이블을 찾음
객체는 참조를 사용하여 연관된 객체를 찾음
--> 테이블과 객체는 이런 큰 간격이 있다.
PK(Primary Key)
FK(Foreign Key)
연관 관계 매핑
객체의 참조와 테이블의 외래 키를 매핑
@Entity
public class Member {
@Id @GeneratedValue
private Long id;
@Column(name = "USERNAME")
private String name;
private int age;
// @Column(name = "TEAM_ID")
// private Long teamId;
@ManyToOne
@JoinColumn(name = "TEAM_ID")
private Team team
Member 입장에서 Team은 ManyToOne
//팀 저장
Team team = new Team();
team.setName("TeamA");
em.persist(team);
//회원 저장
Member member = new Member();
member.setName("member1");
member.setTeam(team); //단방향 연관관계 설정, 참조 저장
em.persist(member);
//조회
Member findMember = em.find(Member.class, member.getId());
//참조를 사용해서 연관관계 조회
Team findTeam = findMember.getTeam();