BE전문가 프로젝트

연관관계 Annotation 정리 본문

JPA

연관관계 Annotation 정리

원호보고서 2022. 10. 27. 22:48

@JoinColumn

외래 키를 매핑할 때 사용

속성 설명 기본값
name 매핑할 외래 키 이름 필드명 + _ + 참조하는 테이블의 기본 키 컬럼명
referencedColumnName 외래 키가 참조하는 대상 테이블의 컬럼명 참조하는 테이블의 기본키 컬럼명
foreignKey(DDL) 외래 키 제약조건을 직접 지정할 수 있다.
이 속성은 테이블을 생성할 때만 사용한다.
 
unique
nullable insertable
updatable
columnDefinition
table
@Column과 속성이 같다  

 

@ManyToOne

다대일 관계 매핑

속성 설명 기본값
optional false로 설정하면 연관된 엔티티가 항상 있어야 한다 Ture
fetch 글로벌 페치 전략을 설정한다. @ManyToOne=FetchType.EAGER
@OneToMany=FetchType.LAZY
cascade 영속성 전이 기능을 사용한다  
targetEntity 연관된 엔티티의 타입 정보를 설정한다.
이 기능은 거의 사용하지 않는다.
컬렉션을 사용해도 제네릭으로 타입 정보를 알 수 있다
 

 

@OneToMany

일대다 관계 매핑

일대다 관계에서는 mappedBy가 있는데 다대일에서는 없다.

그 말은 즉 다대일을 사용할 경우 반드시 다(N)가 연관관계의 주인이 되어야 한다는 의미이다

속성 설명 기본값
mappedBy 연관관계의 주인 필드를 선택한다. Ture
fetch 글로벌 페치 전략을 설정한다. @ManyToOne=FetchType.EAGER
@OneToMany=FetchType.LAZY
cascade 영속성 전이 기능을 사용한다  
targetEntity 연관된 엔티티의 타입 정보를 설정한다.
이 기능은 거의 사용하지 않는다.
컬렉션을 사용해도 제네릭으로 타입 정보를 알 수 있다
 

'JPA' 카테고리의 다른 글

@MappedSuperclass  (0) 2022.10.30
상속관계 매핑  (0) 2022.10.29
쇼핑몰 만들기 2 - 다양한 연관 관계 매핑  (0) 2022.10.27
일대일(1:1)  (0) 2022.10.23
일대다(1:N)  (0) 2022.10.20
Comments