[Spirng JPA] 단방향/양방향 연관관계

류넹·2024년 3월 21일
1

Spring

목록 보기
45/50

💡 연관관계의 주인

  • 외래키를 만들어서 값을 갖고 있는 테이블이 주인

1. 단방향 연관관계

  • 실제로 연관관계의 주인인 테이블에만 연관관계를 설정(@ManyToOne)

2. 양방향 연관관계 매핑

  • 두 객체가 서로 참조해야 하는 상황에서 정의하는 연관관계 매핑 방식
  • 데이터베이스에서 테이블 간의 관계는 단방향 매핑이 존재한다.
  • 양방향 연관관계 매핑을 할 때는 반드시 한쪽의 객체에 mappedBy 옵션을 설정해야 한다.
  • 객체입장에서는 참조 관계가 양방향이 되었으나, 데이터베이스 입장에서는 자식 테이블의 외래키만으로 관계설정이 충분하기 때문에, 추가적인 설정이 필요하다.
  • mappedBy 옵션은 자신이 이 연관관계의 주인이 아님을 설정하는 것이다.
  • mappedBy 옵션에서는 반대쪽에 자신이 매핑되어 있는 필드명을 적으면 된다.

연관관계의 주인은 1:N의 경우, N이 연관관계의 주인이다.
즉, 외래키를 가지고 있는 쪽이 연관관계의 주인이다.

	// mappedBy = "post"
    //	- 연관관계의 주인은 post
	@OneToMany(mappedBy = "post", cascade = CascadeType.REMOVE)
	private Set<PostVoter> postVoters;
profile
학습용 커스터마이징 간단 개발자 사전

0개의 댓글