@OneToMany
์ผ๋๋ค ๋งคํ์ ๋งคํํ ๊ฐ์ฒด๊ฐ ๊ด๋ฆฌํ๋ ์ธ๋ ํค๊ฐ ๋ค๋ฅธ ํ ์ด๋ธ์ ์๋ค๋ ํน์ง์ด ์๋ค. ์ด ๊ฒฝ์ฐ ์ฑ๋ฅ ๋ฌธ์ ๋ ์์ง๋ง ๊ด๋ฆฌ๊ฐ ๋ถ๋ด์ค๋ฝ๊ธฐ ๋๋ฌธ์ ๋ค๋์ผ ์๋ฐฉํฅ ๋งคํ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค.
์ผ๋๋ค ๋จ๋ฐฉํฅ ์ฐ๊ด๊ด๊ณ
์ผ๋๋ค ๋จ๋ฐฉํฅ ๋งคํ
@Entity
public class Team{
@Id@GeneratedValue
@Column(name="TEAM_ID")
private Long id;
private String name;
@OneToMany
@JoinColumn(name="TEAM_ID")
private List<Member> members = new ArrayList<Member>();
...
}
@Entity
public class Member{
@Id@GeneratedValue
@Column(name = "MEMBER_ID")
private Long id;
private String username;
...
}
๋ค๋์ผ ๋จ๋ฐฉํฅ ์ฐ๊ด๊ด๊ณ
๋ค๋์ผ ๋จ๋ฐฉํฅ ๋งคํ
@Entity
public class Member {
@Id
@Column(name="MEMBER_ID")
private String id;
private String username;
// ์ฐ๊ด๊ด๊ณ ๋งคํ
@ManyToOne
@JoinColumn(name="TEAM_ID")
private Team team;
...
}
@Entity
public class Team {
@Id
@Column(name="TEAM_ID")
private String id;
private String name;
...
}
๋น๊ต๋ฅผ ์ํด ๋ค๋์ผ ์ฐ๊ด๊ด๊ณ๋ฅผ ๊ฐ์ ธ์๋ดค๋ค. ์ฐจ์ด์ ์ด ๋ณด์ด๋๊ฐ?
๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ธ๋ํค๋ ๋ฌด์กฐ๊ฑด '๋ค'์ชฝ์ธ ํ ์ด๋ธ์ด ๊ด๋ฆฌํ๋ฏ๋ก ๋ค๋์ผ ๊ด๊ณ, ์ผ๋๋ค ๊ด๊ณ ๋ชจ๋ '๋ค'์ชฝ์ ์ธ๋ํค๊ฐ ์์ ์ ๋ฐ์ ์๋ค. ๋ฐ๋ผ์ ์ผ๋๋ค ๊ด๊ณ์์์ @JoinColumn์ ๋ฐ๋ํธ ํ ์ด๋ธ์ ์ธ๋ํค๋ฅผ ๋งํ๊ณ , ๋ค๋์ผ ๊ด๊ณ์์์ @JoinColumn์, @JoinColumn์ ์ฌ์ฉํ ์ํฐํฐ๊ฐ ๋งคํ๋ ํ ์ด๋ธ์ ์ธ๋ํค๋ฅผ ๋งํ๋ค.
์ผ๋๋ค ์๋ฐฉํฅ์ ์ด์ฐ์ ์ฐ ๊ทธ๋ ๊ฒ ๋ณด์ด๊ฒ ๊ตฌํ์ ๊ฐ๋ฅํ์ง๋ง ์ผ๋๋ค ๋จ๋ฐฉํฅ์ ๋จ์ ์ ๊ทธ๋๋ก ๊ฐ์ง๊ธฐ ๋๋ฌธ์ ์ฑ ์ผ๋ก๋ง ํ๊ณ ๋์ด๊ฐ๊ฒ ๋ค. (๊ฐ์ธ์ ์ผ๋ก ์ฑ๋ฅ๋ ์ฑ๋ฅ์ด์ง๋ง ๋ค๋ฅธ ํ ์ด๋ธ์ ์ธ๋ ํค๋ฅผ ๊ด๋ฆฌํด์ผ ํ๋ค๋ ๊ฒ ์์ฒด๊ฐ ํท๊ฐ๋ฆฐ๋ค.) ์ผ๋๋ค ์๋ฐฉํฅ ๋งคํ์ด ๊ผญ ํ์ํ๋ค๊ณ ์๊ฐ๋ ๋ ์ด ๊ธ์ ๋ค์ ์ด์ด๊ฐ๋ ๊ฒ์ด ์ข์ ๊ฒ ๊ฐ๋ค.
Last updated