자바/JPA
[5단원] `@JoinColumn` , `@ManyToOne`
OverTheHorizon3410
2023. 11. 1. 16:25
@JoinColumn
- 외래키 매핑시 사용
속성 | 기능 | 기본값 |
name | 매핑할 외래 이름 | 필드명 +_+ 참조하는 테이블의 기본 키 컬럼명 |
referencedColumnName | 외래 키가 참조하는 대상 테이블의 컬럼명 | 참조하는 테이블의 기본 키 컬럼명 |
foreignKey(DDL) | 외래 키 제약조건을 직접 지정할 수 있다. 이 속성은 테이블을 생성할 때만 사용한다. | - |
... | ... | ... |
@JoinColumn
을 생략하면 외래 키를 찾을 때 기본 전략을 사용@ManyToOne
아래에private Team team
선언만해도 기본 전략인 필드명_참조하는 테이블 컬럼명에 따라
team_TEAM_ID
라는 외래 키를 사용
@ManyToOne
- 다대일 관계에서 사용
속성 | 기능 | 기본값 |
optional | false로 설정하면 연관된 엔티티가 항상 있어야 한다. | true |
fetch | 글로벌 페치 전략을 설정한다. | @ManyToOne=FetchType.EAGER, @OneToMany=FetchType.LAZY |
cascade | 영속성 전이 기능을 사용한다. | - |
targetEntity | 연관된 엔티티의 타입 정보를 설정한다. | - |
@OneToMany
private List<Member> members; //제네릭으로 타입 정보를 알 수 있다.
@OneToMany(targetEntity=Member.class)
private List members; //제네릭이 없으면 타입 정보를 알 수 없다.
- 일대일 다대일 등의 관계가 존재함.
- 반대편이 일대다면 - 다대일로 사용
- 일대일이면 일대일로 받아야합니다.
Uploaded by N2T