23.06.05 15:09 작성
·
313
0
QueryDSL 강의 예제 모델에서 ,
@Entity
@Getter @Setter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@ToString(of = {"id", "username", "age"})
public class Member {
@Id
@GeneratedValue
@Column(name = "member_id")
private Long id;
private String username;
private int age;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "team_id")
private Team team;
public Member(String username, int age, Team team) {
this.username = username;
this.age = age;
if (team != null) {
changeTeam(team);
}
public void changeTeam(Team team) {
this.team = team;
team.getMembers().add(this);
이 부분에서
public void changeTeam(Team team) {
this.team.getMembers().remove(this);
this.team = team;
team.getMembers().add(this);
아래와 같이 해당 팀의 멤버 삭제도 해줘야 하는것 아닌가요?
public void changeTeam(Team team){
if(this.team != null) {
// this.team이 null이 아니면 이 member객체는 team이 있음을 의미
this.team.getMembers().remove(this); // 해당 팀의 멤버에서 삭제
}
this.team = team;
team.getMembers().add(this);
}