๋ฐ์ํ
์๋ฐ ORM ํ์ค JPA ํ๋ก๊ทธ๋๋ฐ - ๊ธฐ๋ณธํธ์ ๊ณต๋ถํ๋ฉฐ ์ ๋ฆฌํ ๋ด์ฉ์ ๋๋ค.
โ ๊ฐ์ฒด๋ฅผ ํ ์ด๋ธ์ ๋ง์ถฐ ๋ชจ๋ธ๋ง
@Entity
public class Member {
@Id @GeneratedValue
private Long id;
@Column(name = "USERNAME")
private String name;
@Column(name = "TEAM_ID")
private Long teamId;
// getter & setter
}
@Entity
public class Team {
@Id @GeneratedValue
private Long id;
private String name;
// getter & setter
}
'๋ค' ๊ด๊ณ์ธ ํ ์ด๋ธ์ชฝ์ ํญ์ ์ธ๋ํค(FK)๊ฐ ์๋๊ฒ ์ข๋ค. ์ด๋ ๊ฒ ์ค๊ณํ๋ ์ด์ ๋ ๋์ค์ ๋ ๋ผ๊ฐ๋ ์ฟผ๋ฆฌ๋ฅผ ๋ด๋ ํท๊ฐ๋ฆฌ์ง ์๊ฒ ๋ ํ๊ธฐ ์ํด์ ์ด๋ค.
์์์ฑ ์ปจํ ์คํธ์ ์ ์ฅ์ ํ๋ ๊ณผ์ ์์..
// ํ ์ ์ฅ
Team team = new Team();
team.setName("TeamA");
em.persist(team);
// ํ์ ์ ์ฅ
Member member = new Member();
member.setName("member1");
member.setTeamId(team.getId()); // ์ด ๋ถ๋ถ!
em.persist(member);
member.setTeamId(team.getId()) ์ด ๋ถ๋ถ์ ๊ฐ์ฒด์งํฅ์ ์ด์ง ์๋ค. Member์์ ๋ฐ๋ก Team ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ ์๊ฐ ์๋ค.
๊ฐ์ฒด๋ฅผ ํ ์ด๋ธ์ ๋ง์ถ์ด ๋ฐ์ดํฐ ์ค์ฌ์ผ๋ก ๋ชจ๋ธ๋งํ๋ฉด, ํ๋ ฅ ๊ด๊ณ๋ฅผ ๋ง๋ค ์ ์๋ค.
๋ค์ ์๊ฐ์๋ "๊ฐ์ฒด ์งํฅ ๋ชจ๋ธ๋ง"์ ์์๋ณด์.
๋ฐ์ํ