• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

연관관계의 주인을 양쪽 모두 설정할 경우

23.01.23 15:36 작성 23.01.23 15:37 수정 조회수 4.73k

0

=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]

일대다[1:N] 강의의 16분 29초 쯤에 연관관계의 주인이 양쪽에 모두 있으면 망한다라는 언급이 있으신데, 순서가 꼬이거나 예측이 안된다는게 구체적으로 어떤 의미인지 예시가 있을까요?

정말 단순하게 생각하면 어쨋든 연관관계의 주인이 아닌 쪽에서 mappedby를 통해 읽기 전용으로 설정하지 않아도 Member에서 추가하나 Team에서 추가하나 반영될 수 있다면 오히려 좋지 않나 싶은 의구심이 들어서 질문드립니다

감사합니다 :)

답변 1

답변을 작성해보세요.

2

안녕하세요. 김윤식님

이 부분은 개념적인 부분인데요.

A,B가 OneToOne 관계라고 가정하겠습니다. 양쪽에서 모두 관리를 하게 되면 A에는 x라는 데이터를 넣었는데, B에는 y라는 데이터를 넣을 수 있습니다. 이 경우 x, y가 충돌하게 되는데요. 이때 어떤 데이터를 넣어야 할지 판단의 기준이 없게 됩니다.

감사합니다.

문 현필님의 프로필

문 현필

2023.06.30

저도 이부분이 궁굼했었는데,

연관관계의 주인이 양쪽에 모두있다면,

A에 x를 넣을때 B에도 x가 들어가고,

B에 y를 넣으면 마찬가지로 A에 y가 들어가서 문제될 부분이 없는것이 아닌가 생각이 드는데

제가 놓치는 부분이 어떤 부분일까요?..

안녕하세요. 현필님

아주 정확하게 양쪽을 관리한다면 괜찮겠지만, 단방향 연관관계도 있으니 양쪽다 항상 같은 값이 들어가는지 체크하도록 설계한다면 너무 복잡해지겠지요? 그래서 JPA에서는 한쪽에 연관관계의 주인을 정하는 방식을 사용합니다.

감사합니다.