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

boydev572님의 프로필 이미지

작성한 질문수

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

일대다 [1:N]

TEAM_ID 에 대해서 궁금해서 질문드립니다..

작성

·

275

0

안녕하세요? 강사님!. 항상 강의 잘 듣고 있습니다.

다름이 아니라,  다대일 에서는 TEAM 클래스에 @column(name="TEAM_ID")가 존재하는데,

일대다 에서는 MEMBER 클래스에 @column(name="TEAM_ID") 가 존재하지 않는데,

어떻게 테이블에는 존재하나요..? 즉, 어떻게 매핑이 가능한가요...?

감사합니다.

답변 4

1

boydev572님의 프로필 이미지
boydev572
질문자

친절하고 상세한 설명 감사합니다. 이해가 잘 됐습니다!!!

감사합니다 ㅎㅎ

1

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

네 답변 드리겠습니다.

그런데 우선 한번 꼭! 실행해보세요. 이건 실행을 해봐야 이해가 됩니다!

1. 6:16 에서 team.getMembers().add(member) 을 하면, TEAM_ID(FK) 를 업데이트 해야한다고 말씀해주셨는데, 업데이트 한다는 말씀이 무엇인지 이해가 가지 않습니다.....

-> 연관관계의 주인이 Team.members입니다. 여기에 값을 입력하면, MEMBER 테이블에 있는 TEAM_ID 외래키가 업데이트 됩니다.

2. (그러면 업데이트 되면.. Member 클래스에 있는 키 값으로 업데이트 되는 건가요...?)

-> TEAM의 PK인 TEAM_ID가 MEMBER 테이블에 있는 TEAM_ID(FK)에 업데이트 됩니다.

3. 그리고, 제가 밑에 캡쳐한 사진에서 @JoinColumn(name="TEAM_ID222") 라고 TEAM_ID 를 바꿔서 썻는데, 밑에 디버깅에는 create table Member 에서 TEAM_ID222 bigint 라고 뜨는데 DB에서는 그냥 TEAM_ID 로 뜨는지 이해가 가지 않습니다.

-> 이건 뭔가 잘못된 것 같아요. H2에서 테이블을 직접 모두 DROP하고 다시 실행해보시겠어요?

4.(그러면위에 3번으로 인해, MEMBER 테이블에서 TEAM_ID(FK)로 떠서 TEAM 클래스에서의 TEAM_ID(PK) 와 연관관계 인가요..?)

-> 3번이 우선 잘못되었고, 추가로 1,2번을 읽어보시면 됩니다^^

0

boydev572님의 프로필 이미지
boydev572
질문자

1. 6:16 에서 team.getMembers().add(member) 을 하면, TEAM_ID(FK) 를 업데이트 해야한다고 말씀해주셨는데, 업데이트 한다는 말씀이 무엇인지 이해가 가지 않습니다.....

2. (그러면 업데이트 되면.. Member 클래스에 있는 키 값으로 업데이트 되는 건가요...?)

3. 그리고, 제가 밑에 캡쳐한 사진에서 @JoinColumn(name="TEAM_ID222") 라고 TEAM_ID 를 바꿔서 썻는데, 밑에 디버깅에는 create table Member 에서 TEAM_ID222 bigint 라고 뜨는데 DB에서는 그냥 TEAM_ID 로 뜨는지 이해가 가지 않습니다.

4.(그러면위에 3번으로 인해, MEMBER 테이블에서 TEAM_ID(FK)로 떠서 TEAM 클래스에서의 TEAM_ID(PK) 와 연관관계 인가요..?)

감사합니다.

0

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

안녕하세요. boydev572님

제가 질문을 잘 이해하지 못했습니다.

Team, Member 두 엔티티 예제 코드를 남겨주시고, 예제 코드를 기반으로 다시 한번 질문주시겠어요?