연관관계 매핑에서 @JoinColumn이 없어도 되나요?
511
작성한 질문수 2
안녕하세요,
강의 정말 잘 듣고 있습니다. 여태까지 들어본 강의중에 김영한님 강의들이 가장 도움이 많이 되는것 같습니다. 단방향 연관관계 동영상을 보고 난 후, Team 클래스에서 @Column("TEAM_ID")를 지우고 실행도 해보고, 테이블이름을 TEAM 말고 TEAMS로 설정도 해보고, Member 클래스에서는 @JoinColumn을 아예 지우고 해봤는데도 매번 잘 실행되더라구요. 어떻게 저런 어노테이션들이 없어도 모두 제대로 실행되는지 헷갈리네요.. JPA를 배우는게 처음이라 잘 이해도 안가고 인터넷도 찾아봤지만 답이 안나와서 질문 드립니다. 공부할때 가끔가다 한번씩 별거 아닌데도 갑자기 헷갈리기 시작할때가 있더라구요..
감사합니다.
답변 5
1
감사합니다. 궁금한게 시원하게 해결되었네요 ㅎㅎ 강의만 만드시는게 아니고 질문에 대한 답변들도 빠르게 잘 해주시니 배울때 많은 도움이 되네요. 이번 강의 끝난 후 다른 강의들도 수강하러 가겠습니다!
1
안녕하세요. Juhyeon Lee님^^
먼저 @JoinColumn이 없으면 디폴트 전략으로 외래키 컬럼을 자도응로 생성합니다^^ 그리고 @JoinColumn에서 referencedColumnName이라는 속성이 있는데요. 이 속성의 기본값이 대상 테이블의 PK를 자동으로 지정합니다.
그래서 자동으로 잘 동작한 것입니다^^
도움이 되셨길 바래요.
0
@JoinColumn의 name은 외래키 컬럼 이름 입니다^^
그리고 referencedColumnName은 참조할 대상 테이블의 PK 이름이라 보시면 됩니다^^ 그러니까 조인할 대상 테이블의 컬럼이름이지요^^ referencedColumnName은 가급적 지정하지 않고 디폴트로 사용하는 것을 권장합니다.
감사합니다.
0
늦은 시간에 답변 감사합니다~ @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





