inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

이현준님의 게시글

이현준 이현준

@hyunjunlee10281941

수강평 작성수
1
평균평점
5.0

게시글 2

질문&답변

@JoinColumn(name="parent_id")

저도 궁금해서 찾아봤습니다. @JoinColumn에 명시한 이름의 컬럼이 존재하지 않는 경우, JPA가 테이블에 해당 컬럼을 직접 추가해준다고 하네요. 애플리케이션 실행 후 테이블 생성 DDL을 보면 category 테이블에 parent_id 라는 컬럼이 포함되어있는 것을 확인할 수 있습니다. 그럼 여기서 JPA가 어떻게 타입도 모르는데 이름만 가지고 컬럼을 생성할 수 있냐고 의문을 가질 수 있습니다. 어차피 @JoinColumn 어노테이션은 외래키 매핑을 하기 위한 용도이기 때문에, 생성할 컬럼은 참조하고 있는 테이블의 PK와 동일한 타입을 가져야겠죠. 이 경우에는 자기 자신인 category 테이블을 참조하고 있으므로, category_id의 타입인 bigint 타입으로 컬럼이 생성되게 됩니다. 혹여나 틀린 부분이 있다면 정정해주시면 감사하겠습니다.

좋아요수
1
댓글수
2
조회수
766