해결된 질문
작성
·
321
·
수정됨
0
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)
안녕하세요. 다름이 아니라 @JoinColumn 에서는 name 속성으로 외래키 컬럼의 컬럼명을 지정하고, 생략된 referenceColumName 속성을 통해 해당 외래키가 대상 테이블의 어떤 컬럼과 연결되는지 정하는 것으로 알고 있습니다.
@OneToMany
@JoinColumn(name = "TEAM_ID")
private List<Member> members = new ArrayList<>();
그런데 일대다 연관관계에서 다음과 같이 일 쪽에서 joinColumn을 넣어줄 경우 referenceColumnName 속성은 디폴트 값으로 어떤 컬럼과 연결되는지 궁금합니다.
영한 선생님의 답변글에서는 디폴트 값으로 해당 필드의 타입을 확인하고 해당 타입의 pk컬럼과 연결시켜준다고 봤는데 위 경우는 List가 나와서 어떻게 되는지 궁금합니다.
답변 1
1
안녕하세요. hw h님
다음을 참고해주세요.
https://www.inflearn.com/questions/113969
referenceColumnName을 지정하지 않으면 대상 테이블의 PK가 사용됩니다.
이 경우 Member 테이블의 PK 값이 사용됩니다.
감사합니다.
답변 감사합니다! 그런데 추가적으로 궁금한 점이 해당 예시에서는 List members 가 TEAM_ID와 매핑된다고 그림으로 나오는데 (영상 14:44초) 위와 같이 코드를 작성하면 MEMBER_ID 와 연관관계가 형성되게 되는 것이 아닌가요?
그리고 분명 '일' 쪽에 @JoinColumn 을 사용했는데 '다' 쪽 테이블에 해당 컬럼이 추가되는 원리가 궁금합니다. 이 부분은 Jpa가 OneToMany 어노테이션을 보고 어느쪽이 '다' 쪽인지 파악해서 알아서 '다' 쪽 테이블에 외래키를 추가해주는 구조인가요?
답변 해주시면 정말 감사하겠습니다!!