강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

bogenarc님의 프로필 이미지
bogenarc

작성한 질문수

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

@JoinColumn이나 @JoinTable의 사용이유는 무엇인가요?

작성

·

728

0

해당 어노테이션이 없어도 @Query 어노테이션 붙여서 조인시켜서 데이터를 가져오는데 문제가 없어 보이는데 해당 어노테이션들을 사용해주는 이유가 무엇인가요

답변 1

0

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. bogenarc님 좋은 질문입니다.

@JoinColumn은 JPA가 테이블에 외래 키를 컬럼을 매핑하는 방법을 설정하는 애노테이션입니다. 대신에 이런 설정들이 없으면 JPA가 제공하는 기본 설정으로 외래 키 컬럼 이름을 매핑합니다. 그런데 이 기본 설정이 제공하는 외래 키 컬럼 이름이 썩 마음에 들지 않으실꺼에요. (해당 애노테이션을 넣고 빼면서, 생성되는 테이블 외래 키 컬럼을 보시면 기본 정책을 바로 알 수 있습니다.)

JPA는 테이블을 직접 아는 것이 아니라 객체를 기반으로 쿼리를 하기 때문에, 이런 설정과는 무관하게 @Query를 통해서 조인할 수 있습니다.

@JoinColumn이나 @JoinTable에 대한 상세한 내용은 기본편을 참고해주세요^^

감사합니다.

bogenarc님의 프로필 이미지
bogenarc

작성한 질문수

질문하기