인프런 커뮤니티 질문&답변
@JoinColumn이나 @JoinTable의 사용이유는 무엇인가요?
작성
·
728
0
해당 어노테이션이 없어도 @Query 어노테이션 붙여서 조인시켜서 데이터를 가져오는데 문제가 없어 보이는데 해당 어노테이션들을 사용해주는 이유가 무엇인가요
답변 1
0
김영한
지식공유자
안녕하세요. bogenarc님 좋은 질문입니다.
@JoinColumn은 JPA가 테이블에 외래 키를 컬럼을 매핑하는 방법을 설정하는 애노테이션입니다. 대신에 이런 설정들이 없으면 JPA가 제공하는 기본 설정으로 외래 키 컬럼 이름을 매핑합니다. 그런데 이 기본 설정이 제공하는 외래 키 컬럼 이름이 썩 마음에 들지 않으실꺼에요. (해당 애노테이션을 넣고 빼면서, 생성되는 테이블 외래 키 컬럼을 보시면 기본 정책을 바로 알 수 있습니다.)
JPA는 테이블을 직접 아는 것이 아니라 객체를 기반으로 쿼리를 하기 때문에, 이런 설정과는 무관하게 @Query를 통해서 조인할 수 있습니다.
@JoinColumn이나 @JoinTable에 대한 상세한 내용은 기본편을 참고해주세요^^
감사합니다.





