-
JPA 연관 관계의 주인과 소유 측: 개념 및 예제JPA 2024. 5. 4. 18:26
JPA 연관 관계에 대한 학습을 하다보면
관계의 주인
이라는 표현이 나온다.
이에 대해 자세히 알아보자.예제 코드
// In Customer class: @OneToMany(mappedBy="customer") private Set<Order> orders; // In Order class: @ManyToOne private Customer customer;
The owner of the relationship (관계의 주인)
- "관계의 주인(The owner of the relationship)"은 엔티티 클래스 자체가 아니라, 관계를 관리하는 필드 또는 프로퍼티를 의미한다.
- JPA의 레퍼런스 어디에서도 엔티티 클래스에 owner라는 표현을 쓰지 않는다.
- 예제 코드에서
Order
클래스의customer
필드가 관계의 주인이다. - 이는 외래 키나 조인 테이블을 관리하는 책임이 있는 필드를 가리키며, 그 필드가 관계를 제어한다.
Owning side (소유 측)
- "소유 측(Owning side)"은 관계의 주인 필드 또는 프로퍼티를 가지고 있는 엔티티 클래스를 의미한다.
- 예제 코드에서는
Order
클래스 자체가 소유 측이 된다.
Non-owning side / Inverse side / Referencing side (비소유 측)
- "비소유 측(Non-owning side)"은 관계를 직접 관리하지 않고 참조만 하는 엔티티를 말한다.
- 예제 코드에서는
Customer
클래스가 비소유 측으로,orders
필드가mappedBy
속성을 통해 관계를 참조할 뿐 관리하지 않는다.
'JPA' 카테고리의 다른 글
JPA에서 `orphanRemoval`과 `CascadeType.REMOVE` 차이 (0) 2024.10.09 JPA Entity에 public or protected no-arg constructor가 필수인 이유 (1) 2024.10.09 JPA 연관 관계 어노테이션의 속성 분석 (0) 2024.05.04 JPA : 영속성 전이(Cascade) (0) 2024.05.02 Spring Data JPA 가이드 모음 (0) 2024.05.02 - "관계의 주인(The owner of the relationship)"은 엔티티 클래스 자체가 아니라, 관계를 관리하는 필드 또는 프로퍼티를 의미한다.