작성
·
318
0
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.
1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)
[질문 내용]
안녕하세요! 다대다 매핑 관련하여 질문드립니다.
강의에서도 그렇고
구글링을 했을 때도 그렇고 다대다 매핑을 항상
@oneToMany @ManyToOne 으로 매핑을 하더라구요!
그러다가 문득
@ManyToOne @OneToMany로 다대다를 풀어내는 경우는
아예 없는건지 궁금해졌습니다.
제가 지금 사이드 프로젝트를 하고 있는데
erd를 @ManyToOne @OneToMany로 해놨었거든요..!
이 경우에 어떤 문제가 발생하는지
실무에서는 아예 사용하지 않는 다대다 매핑 방법인지
사용한다면 어떤 경우에 사용되는 것인지가
궁금합니다..!
답변 1
1
안녕하세요. jj93913님, 공식 서포터즈 코즈위버입니다.
어떤 엔티티 사이의 M:N 관계는 1:N, N:1로 풀 수 밖에 없습니다.
가령 Member엔터티에 'A', 'B' 가 있고 Team엔터티에 '가', '나' 가 있다고 가정하겠습니다.
Member 'A'가 Team '가','나' 양측에 속해있으며, Member 'B'는 Team '가'에만 소속 되어 있다고 하고,
이 둘 사이의 중간엔터티(TeamMember)를 이용하여 풀어내면 아래와 같습니다.
[1, A, 가], [2, A, 나], [3, B, 가]
숫자 1,2,3 은 TeamMember의 인조식별자
이는 Member 입장에서 MemberTeam을 보면 1:N 인 형태이며, Team 입장에서 Team입장에서 MemberTeam을 보아도 1:N 상태, 즉 1:N, N:1 로 풀어낸 상태가 됩니다.
다른 형태로 풀어내는 모습은 상상하기 힘듭니다.
감사합니다.