JPA - @JoinColumn 정리

2024. 7. 18. 21:03Web/JPA

참고블로그

https://ksh-coding.tistory.com/105

 

[JPA] @JoinColumn 파헤치기 (feat. JPA 연관관계별 사용)

✌🏻 0. 들어가기 전 JPA 강의 중에 @JoinColumn을 마스터하면 JPA 연관관계를 어느정도는 다 알 수 있다고 들었다. 그래서, 여러 JPA 개념 중에 @JoinColumn에 대해 파헤쳐보면서 JPA 연관관계를 이해해보

ksh-coding.tistory.com

 

@JoinColumn의 name 속성

name 속성은 연관관계의 주인(@JoinColumn을 가진)의 테이블의 FK 필드명을 뜻한다.

* 참조하는 Entity가 존재할 경우
: 참조하는 Entity의 필드명 + "_" + 참조된 기본 키 열의 이름

public class Station {
	...
	
    @ManyToOne
    @JoinColumn
    private Line line;	
}

: 참조하는 Entity(Station)의 필드명(line) + "_" + 참조된 Entity(Line)의 기본 키 열의 이름(id)
: line + "_" + id = "line_id"

 

위 클래스를 기반으로 설명을 하자면, Station은 Line과 연관 관계가 있는데, Station 데이터베이스 테이블에 Line과의 연관관계인 FK가 LINE_ID 필드로 되어 있다는 설정.

 

기본값 : 위 클래스 기준 Line 필드명(line) + Line클래스의 PK 필드명

 

@JoinColumn의 referencedColumnName 속성

referencedColumnName속성은 연관관계의 주인(@JoinColumn을 가진)과 연관관계에 있는 테이블의 PK 필드명(연관 관계 주인의 FK와 연결되는 필드)을 뜻한다.

 

기본값 : 위 클래스 기준 Line클래스의 PK 필드명