[5단원] `@JoinColumn` , `@ManyToOne`

@JoinColumn

  • 외래키 매핑시 사용
속성기능기본값
name매핑할 외래 이름필드명 +_+ 참조하는 테이블의 기본 키 컬럼명
referencedColumnName외래 키가 참조하는 대상 테이블의 컬럼명참조하는 테이블의 기본 키 컬럼명
foreignKey(DDL)외래 키 제약조건을 직접 지정할 수 있다. 이 속성은 테이블을 생성할 때만 사용한다.-
.........
  • @JoinColumn 을 생략하면 외래 키를 찾을 때 기본 전략을 사용
    • @ManyToOne 아래에 private Team team 선언만해도 기본 전략인 필드명_참조하는 테이블 컬럼명에 따라
    • team_TEAM_ID 라는 외래 키를 사용

@ManyToOne

  • 다대일 관계에서 사용
속성기능기본값
optionalfalse로 설정하면 연관된 엔티티가 항상 있어야 한다.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