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는 연관관계의 주인이 아닌 곳에 다는 것이고, 그 뜻은 외래키가 없다는 뜻이다.

반응형

'Spring > JPA' 카테고리의 다른 글

태태개발일지 - 트랜잭션?  (0) 2024.12.03
태태개발일지 - JPA PK Key  (0) 2024.12.03
태태개발일지 - JPA 슈퍼타입  (1) 2024.11.20
태태개발일지 - ActionQueue  (3) 2024.11.18
태태개발일지 - ManyToMany  (2) 2024.11.15