반응형
목차
- @JoinColumn이란?
- with @OneToOne
- with @ManyToOne
1. @JoinColumn이란?
- @JoinColumn은 엔티티 연관관계나 Collection 연관관계에서 조인 대상이 되는 Column을 나타냅니다.
2. with @OneToOne
- @OneToOne과 함께 쓰이는 @JoinColumn은 현재 엔티티가 참조하는 refer 엔티티의 기본키를 해당 필드로 나타냅니다.
- DB 상으로는 외래키로 잡히는 것이고, JPA 상으로는 객체가 매핑되어 있을 것입니다.
@Entity
public class Office {
@OneToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "addressId")
private Address address;
}
3. with @ManyToOne
- Employee(1) : Email(다)의 관계입니다.
- 연관관계의 주인인 Email은 Join 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;
}
반응형
'Backend🌱 > Spring JPA' 카테고리의 다른 글
[질문🌱] 스프링 컨테이너 한 클래스 내에서 두개의 @Repository 사용하기 (0) | 2023.05.11 |
---|---|
[JPA🐸] 다대다 관계 실습 및 오류들 (0) | 2023.05.08 |
🏝️ Spring/JPA[JPA] 필드와 컬럼 매핑 - @ElementCollection (값 타입 컬렉션 매핑), @CollectionTable (0) | 2023.05.01 |
[Spring Boot] JPA 카멜케이스 컬럼명 적용법 (0) | 2023.05.01 |
[JPA 기초] 연관관계 매핑 기초 - 꼭 읽어보기!! (0) | 2023.04.24 |