inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

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

511

Juhyeon Lee

작성한 질문수 2

1

안녕하세요,

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

감사합니다.

java JPA

답변 5

1

Juhyeon Lee

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

1

김영한

안녕하세요. Juhyeon Lee님^^

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

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

도움이 되셨길 바래요.

0

김영한

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

끝까지 화이팅입니다!

0

김영한

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

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

감사합니다.

0

Juhyeon Lee

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

다시 한번 감사드립니다!

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

0

40

1

H2데이터베이스 파일 생성

0

48

2

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

0

49

2

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

0

46

1

JPQL 메소드와 락

0

49

1

Delivery @OneToOne

0

55

1

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

0

85

2

UnsupportedOperationException 발생

0

81

3

H2 Database 연결이 안됩니다.

0

87

2

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

0

79

2

h2데이터베이스 실행오류

0

103

2

persistence.xml

0

101

2

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

0

76

1

영속성 컨텍스트

0

61

1

JPA 프록시

0

87

1

Native Query와 MyBatis

0

62

1

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

0

81

1

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

0

110

3

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

0

89

3

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

0

104

2

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

0

134

1

양방향 연관관계 시 연관관계 주인을 설정하는 이유

0

67

1

임베디드 타입과 MappedSuperClass의 차이점이 궁금합니다.

0

95

1

데이터베이스가 초기화되는 것 같아요

1

174

2