• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

연관관계 매핑에서 @JoinColumn이 없어도 되나요?

20.09.21 01:55 작성 조회수 268

1

안녕하세요,

강의 정말 잘 듣고 있습니다. 여태까지 들어본 강의중에 김영한님 강의들이 가장 도움이 많이 되는것 같습니다. 단방향 연관관계 동영상을 보고 난 후, Team 클래스에서 @Column("TEAM_ID")를 지우고 실행도 해보고, 테이블이름을 TEAM 말고 TEAMS로 설정도 해보고, Member 클래스에서는 @JoinColumn을 아예 지우고 해봤는데도 매번 잘 실행되더라구요. 어떻게 저런 어노테이션들이 없어도 모두 제대로 실행되는지 헷갈리네요.. JPA를 배우는게 처음이라 잘 이해도 안가고 인터넷도 찾아봤지만 답이 안나와서 질문 드립니다. 공부할때 가끔가다 한번씩 별거 아닌데도 갑자기 헷갈리기 시작할때가 있더라구요..

감사합니다.

답변 5

·

답변을 작성해보세요.

1

감사합니다. 궁금한게 시원하게 해결되었네요 ㅎㅎ 강의만 만드시는게 아니고 질문에 대한 답변들도 빠르게 잘 해주시니 배울때 많은 도움이 되네요. 이번 강의 끝난 후 다른 강의들도 수강하러 가겠습니다!

1

안녕하세요. Juhyeon Lee님^^

먼저 @JoinColumn이 없으면 디폴트 전략으로 외래키 컬럼을 자도응로 생성합니다^^ 그리고 @JoinColumn에서 referencedColumnName이라는 속성이 있는데요. 이 속성의 기본값이 대상 테이블의 PK를 자동으로 지정합니다.

그래서 자동으로 잘 동작한 것입니다^^

도움이 되셨길 바래요.

0

Juhyeon Lee님 궁금한 내용이 있으면 언제든지 편하게 질문주세요^^!

끝까지 화이팅입니다!

0

@JoinColumn의 name은 외래키 컬럼 이름 입니다^^

그리고 referencedColumnName은 참조할 대상 테이블의 PK 이름이라 보시면 됩니다^^ 그러니까 조인할 대상 테이블의 컬럼이름이지요^^ referencedColumnName은 가급적 지정하지 않고 디폴트로 사용하는 것을 권장합니다.

감사합니다.

0

늦은 시간에 답변 감사합니다~ @JoinColumn의 name은 데이터베이스 테이블에서 보여질 컬럼명이고 referencedColumnName은 FK로 쓰일 연관관계 매핑 된 테이블의 컬럼명을 설정해주면 된다고 이해해도 되는건가요?

다시 한번 감사드립니다!