반응형
💡 연관관계의 주인
- 외래키를 만들어서 값을 갖고 있는 테이블이 주인
1. 단방향 연관관계
- 실제로 연관관계의 주인인 테이블에만 연관관계를 설정(@ManyToOne)
2. 양방향 연관관계 매핑

- 두 객체가 서로 참조해야 하는 상황에서 정의하는 연관관계 매핑 방식
- 데이터베이스에서 테이블 간의 관계는 단방향 매핑이 존재한다.
- 양방향 연관관계 매핑을 할 때는 반드시 한쪽의 객체에 mappedBy 옵션을 설정해야 한다.
- 객체입장에서는 참조 관계가 양방향이 되었으나, 데이터베이스 입장에서는 자식 테이블의 외래키만으로 관계설정이 충분하기 때문에, 추가적인 설정이 필요하다.
- mappedBy 옵션은 자신이 이 연관관계의 주인이 아님을 설정하는 것이다.
- mappedBy 옵션에서는 반대쪽에 자신이 매핑되어 있는 필드명을 적으면 된다.
연관관계의 주인은 1:N의 경우, N이 연관관계의 주인이다.
즉, 외래키를 가지고 있는 쪽이 연관관계의 주인이다.
// mappedBy = "post"
// - 연관관계의 주인은 post
@OneToMany(mappedBy = "post", cascade = CascadeType.REMOVE)
private Set<PostVoter> postVoters;
< 해당 글은 velog에서 이전하며 옮겨온 글로, 가독성이 좋지 않을 수 있는 점 양해 부탁드립니다. >
🔗 velog 버전 보기 : https://velog.io/@ryuneng2/Spirng-JPA-단방향-양방향-연관관계
'BackEnd > Spring' 카테고리의 다른 글
[Spring JPA] 연관관계(OneToMany, ...)의 즉시로딩과 지연로딩 (0) | 2025.01.19 |
---|---|
[Spring JPA] Spring Data JPA의 쿼리 메소드 작성 규칙 (0) | 2025.01.19 |
[Spring] form태그 하나로 등록, 수정 함께 컨트롤하기 (0) | 2025.01.19 |
[Spring JPA] Spring Data JPA의 페이징 처리 (0) | 2025.01.19 |
[Spring] Thymeleaf로 데이터를 출력하는 법, 표현식 유틸리티 객체 (1) | 2025.01.18 |