inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

일대다 [1:N]

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

208

kkt169

작성한 질문수 47

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쪽에 연관관계 편의 메서드를 두고 이를 사용한다
로 이해하였습니다)

java JPA

답변 1

1

김영한

안녕하세요. kkt169님

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

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

감사합니다.

벌크연산에서 member.getAge 호출 시 영속성 컨텍스트에서 데이터를 가져오는건가요?

0

58

2

inheritance startegy 선택시 고려사항

0

42

1

Entity 동등성 비교

0

47

1

실무 조언 관련 질문입니다.

0

69

1

H2데이터베이스 파일 생성

0

78

2

서브쿼리 강의에서 ALL 예시 관련 질문드립니다.

0

70

2

수정또는 삭제시 영속성 엔티티에 값이 무조건 있어야 하나요?

0

65

1

JPQL 메소드와 락

0

63

1

Delivery @OneToOne

0

73

1

17강 4~5분대 테이블 값 조회가 안됩니다.

0

105

2

UnsupportedOperationException 발생

0

97

3

H2 Database 연결이 안됩니다.

0

103

2

연관관계 매핑 질문드립니다.

0

95

2

h2데이터베이스 실행오류

0

116

2

persistence.xml

0

121

2

양방향 연관관계에서 연관관계의 주인(mappedBy)을 왜 꼭 정해야 하나요?

0

90

1

영속성 컨텍스트

0

77

1

JPA 프록시

0

108

1

Native Query와 MyBatis

0

83

1

영속성 컨텍스트는 어떤 메모리에 저장되는건가요?

0

97

1

임베디드 타입 예시 코드 관련 질문

0

126

3

명시적 조인에서 별칭을 주면 왜 객체에 접근할 수 있나요

0

103

3

인텔리제이 패키지 커서 단축키 질문

0

113

2

혹시 현재는 ID 데이터 타입이 String이면 안되나요?

0

156

1