본문 바로가기
JPA/Annotation

@JoinColumn

by BAYABA 2021. 10. 6.
  1. 개인 공부 목적으로 작성한 글입니다.
  2. 아래 출처를 참고하여 작성하였습니다.

목차

  1. @JoinColumn이란?
  2. with @OneToOne
  3. with @ManyToOne

1. @JoinColumn이란?

  1. @JoinColumn은 엔티티 연관관계나 Collection 연관관계에서 조인 대상이 되는 Column을 나타냅니다.

2. with @OneToOne

  1. @OneToOne과 함께 쓰이는 @JoinColumn은 현재 엔티티가 참조하는 refer 엔티티의 기본키를 해당 필드로 나타냅니다.
  • DB 상으로는 외래키로 잡히는 것이고, JPA 상으로는 객체가 매핑되어 있을 것입니다.
@Entity
public class Office {
    @OneToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "addressId")
    private Address address;
}

3. with @ManyToOne

  1. Employee(1) : Email(다)의 관계입니다.
  2. 연관관계의 주인인 EmailJoin Column으로 Employee를 가지고 있고, 이는 Employee 엔티티에 대한 외래키를 의미합니다.
  • Join Column은 연관관계의 주인쪽에 나타납니다.
@Entity
public class Employee {

    @Id
    private Long id;

    @OneToMany(fetch = FetchType.LAZY, mappedBy = "employee")
    private List<Email> emails;
}

@Entity
public class Email {

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "employee_id")
    private Employee employee;
}

출처

  1. @JoinColumn Annotation Explained

'JPA > Annotation' 카테고리의 다른 글

@PersistenceContext  (0) 2021.10.13
@MappedSuperclass  (0) 2021.10.10
@EnableJpaRepositories  (0) 2021.09.27
@EntityScan  (0) 2021.09.27