BE전문가 프로젝트
연관관계 Annotation 정리 본문
@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