인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

kkt169님의 프로필 이미지
kkt169

작성한 질문수

자바 ORM 표준 JPA 프로그래밍 - 기본편

일대다 [1:N]

다중성 질문 (간단한 질문)

작성

·

177

0

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.

1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

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

[질문 내용]
여기에 질문 내용을 남겨주세요.
 
Q1.
강의에서 설명하시는 1:1, 1:N, N:1, N:M 의 다중성은 모두
DB의 테이블 간 연관관계에 대한 이야기가 아니라 ,
자바 객체(Entity) 간의 연관관계에 대한 내용이 맞는지 궁금합니다.
 
그래서 실제 프로젝트를 하면서 테이블을 설계하고,
이와 대응되도록 객체를 설계할 때,
DB의 테이블간 연관관계는 1:N 으로 설계가 되었더라도,
이를 JPA를 사용한 자바 객체와 대응시킬 때는
이번장에서 설명하시는 1:N이 아니라
그냥 앞 장의 N:1로 객체 연관관계를 설계해야 한다
라고 이해하는게 맞는지 궁금합니다.
(강의 마지막에서의 결론도 이렇게 내주셨는데,
DB의 테이블이 1:N이어도 ~ 객체는 N:1로 설계)
 
Q2.
또한 1:N이 아니라
강의에서 N:1 로 설계하되,
연관관계 주인이 아닌쪽에서도 객체 참조를 추가한다
라고 설명해주신 부분은,
Member와 Team을 예로 들 때
Member가 "다" 에 해당하니 Member의 team 필드가 연관관계 주인이 되는것 맞지만,
동시에 Team 객체의 members도 생성 해주고
이 Team 객체쪽에 연관관계 편의 메서드를 정의하여,
Team객체를 통한 연관관계 편의 메서드 호출을 통하여
Member 테이블의 FK가 벼뀌도록 한다
라고 이해하는게 맞는지 궁금합니다 (강의 9:00 내용중 )
 
(이렇게 연관관계 편의 메서드 없이 Member를 "다"로 하여 "다대일"로 객체간 연관관계를 설정하면,
어쨌든 Member의 team 필드가 바뀌어야, 실제 Member 테이블의 FK가 변하게 되니,
Team쪽에 연관관계 편의 메서드를 두고 이를 사용한다
로 이해하였습니다)

답변 1

1

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. kkt169님

여기서 설명하는 다중성은 문맥에 따라서 다른데요. 기본적으로는 @OneToMany 같은 애노테이션의 다중성은 테이블의 다중성을 이야기합니다. 그리고 그것을 객체에서 최대한 맞추어 사용하게 됩니다.

그리고 나머지 내용들은 코드로 직접 따라하면서 강의를 한번 더 복습하시면 확실히 이해가 되실거에요. 질문 내용을 읽어보니 아직 확실하게 다 이해하지 못하신 것 같아요.

감사합니다.

kkt169님의 프로필 이미지
kkt169

작성한 질문수

질문하기