인프런 커뮤니티 질문&답변

b0i4s님의 프로필 이미지
b0i4s

작성한 질문수

실전! 스프링 데이터 JPA

예제 도메인 모델과 동작확인

기초적인 질문입니다...

해결된 질문

작성

·

538

1

public void changeTeam(Team team) {
this.team = team;
team.getMembers().add(this);
}

강의를 들었을 때 양방향 연관관계에서는 한쪽에만 작업을 해주면 안되고 양쪽을 작업해줘야 하기 때문에 위와 같은 코드를 작성한다고 알고 있습니다.

위 코드에서 팀 변경으로 인해 새로운 팀에 member를 추가해주고 기존의 팀의 list에서 제거해주는 작업은 별도로 진행하지 않아도 되는지 궁금하여 질문 남깁니다...

한쪽에 설정해주면 JPA가 알아서 양방향 연관관계에 대해서 정리해주는건가 싶기도 하고 잘모르겠어서 질문 드립니다

답변 2

1

안녕하세요. BBBBB님, 공식 서포터즈 코즈위버 입니다.

말씀하신것처럼 Team이 변경될 때를 대비하여 제거 코드를 추가하는 것이 좋습니다. 그러면 코드는 아래와 같은 형태가 됩니다 :)

public void changeTeam(Team newTeam) {
    if(this.team != null) {
        this.team.getMembers().remove(this);
    }
    this.team = newTeam;
    newTeam.getMembers().add(this);
}

감사합니다.

0

b0i4s님의 프로필 이미지
b0i4s
질문자

빠른 답변 감사드립니다!!!

b0i4s님의 프로필 이미지
b0i4s

작성한 질문수

질문하기