Spring/JPA
태태개발일지 - 양방향 연관관계
태태코
2024. 11. 22. 16:06
반응형
양방향 연관관계
앞서 OneToMany , ManyToOne, OneToOne, ManyToMany 관계를 알아보았다. 양방향 연관관계는 ManyToMany를 말하는 것이 아니다. OneToMany 와 ManyToOne 으로 서로 연관관계를 맺었을 때에 대한 이야기이다.
-- sudo code --
public class One{
private Long id;
@ManyToOne
@JoinColumn(name = "TWO")
private Two two;
}
-- sudo code --
public class Two{
private Long id;
@OneToMany(mappedby= "two")
private List<One> ones;
}
아래와 같이 서로 양방향으로 연관을 맺었을 때 이 mappedby를 어떻게 사용하냐에 대한 이야기이다.
간략하게 말하자면, 연관관계의 주인을 찾아야하는데 그 연관관계의 주인은 외래키를 가지고 있는 class 가 되어야 한다는 것이다.
이유
만약 외래키가 없는 테이블에 영속성을 통해 값을 넣었을 경우에 외래키가 있는 테이블 까지 업데이트가 되어야 하기 때문이다.
즉: mappedby는 연관관계의 주인이 아닌 곳에 다는 것이고, 그 뜻은 외래키가 없다는 뜻이다.
반응형