์๋ฐฉํฅ ์ฐ๊ด๊ด๊ณ์์ ์ฐ๊ด๊ด๊ณ ํธ์ ๋ฉ์๋ ์์น์ ๋ํด ์ง๋ฌธ๋๋ฆฝ๋๋ค.
๊ฐ์ฌ๋ ๋ต๋ณ ์ ๋ง ๊ฐ์ฌํฉ๋๋ค.์ฌ๋ฌ๊ฐ์ง ๋ฐฉ๋ฒ์ ์๋ํด๋ดค๋๋ฐ ์ ๊ทธ๋ฆฌ๊ฑฐํธ ๋ฃจํธ์ ์ฐ๊ด๊ด๊ณ ํธ์ ๋ฉ์๋๋ฅผ ๋๊ณ ๊ฐ์ฌ๋ ๋ง์์ฒ๋ผ ๋ฌธ์ ์ 1,2 ๋ฒ์ ๊ทธ๋ฅ ์๊ณ ๊ฐ๋๊ฒ ์ ์ผ ๊ด์ฐฎ์ ๋ฐฉ๋ฒ์ธ๊ฒ ๊ฐ์ต๋๋ค.์ ๊ทธ๋ฆฌ๊ฑฐํธ ๋ฃจํธ์ ํธ์ ๋ฉ์๋๋ฅผ ๋ ์ผ๋ก์จ ์์ฉ๊ณ์ธต ์ฝ๋๋ ์์ฐ์ค๋ฌ์์ ธ ์ฝ๋ ํ๋ฆ์ ํ์
ํ๊ธฐ๊ฐ ๋ ์ข์๊ฒ ๊ฐ์ต๋๋ค.@Entity public class Team { @Id @GeneratedValue private Long teamNo; private String name; @OneToMany(mappedBy = "team", cascade = CascadeType.ALL) private List players = new ArrayList(); //์์ฑ์ public Team(String name) { this.name = name; } //์ฐ๊ด๊ด๊ณ ํธ์ ๋ฉ์๋ public void addPlayer(Player player) { Assert.notnull(player, "player is null"); player.initTeam(this); this.players.add(player); } }@Entity public class Player { @Id @GeneratedValue private Long playerNo; private String name; private Integer age; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "team_no") private Team team; //์์ฑ์ public Player(String name, int age) { this.name = name; this.age = age; } void initTeam(Team team) { Assert.notnull(team, "team is null"); Assert.state(this.team == null, "์ด๋ฏธ Team์ ์์๋์ด ์์ต๋๋ค."); this.team = team; } }Team team = new Team("team1"); Player player = new Player("kim", 24); team.addPlayer(player); teamRepository.save(team);