양방향 연관관계에서 연관관계 편의 메서드 위치에 대해 질문드립니다.
강사님 답변 정말 감사합니다.여러가지 방법을 시도해봤는데 애그리거트 루트에 연관관계 편의 메서드를 두고 강사님 말씀처럼 문제점 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);