반응형
OneToOne
DB에서 1대 1관계라고 생각하면 된다.
*JPA에서는 OneToOne 어너테이션을 사용하면 되고, 외래키가 있는 곳을 연관관계의 주인으로 설정하면 된다.*
public class Member(){
@Id
private Long id;
@OneToMany
@JoinColumn(name = "STAM_ID")
private STAMP stamp;
}
public class Stamp(){
@Id
private Long id;
@OneToMany(mappedBy="stamp")
private Member member;
}
OneToOne 은 엔티티를 가져올때 LAZY로 처리해도 무조건 즉시 로딩이된다.
그 이유는 값이 있는 지 확인하기 위해서는 연관관계의 주인이 아닌 테이블도 조회를 해야하기 때문에 JPA에서 그냥 로딩을 해버리는 것이다.
OneToOne 관계에서 확인해야할 상황은 확장성이다.
어느 쪽을 연관관계의 주인으로 설정할 지에 따라서 데이터를 불러오고 값을 변경하는 위치가 달라지기 때문이다. 그리고 혹시 DB에 수정사항이 생겼을 때 어떤 쪽이 더 변경이 많아질지를 생각하고 DB를 설계하는 것이 중요하다.
반응형
'Spring > JPA' 카테고리의 다른 글
태태개발일지 - ActionQueue (3) | 2024.11.18 |
---|---|
태태개발일지 - ManyToMany (2) | 2024.11.15 |
태태개발일지 - JPA 연관관계 (0) | 2024.11.14 |
태태개발일지 - JPA Auditing (2) | 2024.10.22 |
태태개발일지(EVENT) (1) | 2023.12.04 |