반응형
양방향일 때 연관관계의 주인을 누구로 지정해야 할까?
객체의 두 관계 중 하나를 연관관계의 주인으로 지정해야 합니다. 연관관계의 주인만 외래 키를 관리(등록, 수정)가 가능합니다.
주인이 아닌 경우 읽기만 가능합니다.
주인 -> mappedBy 사용 x
주인이 아닌경우 -> mapppedBy 속성으로 주인을 지정
비즈니스 로직을 기준으로 연관관계의 주인을 선택하면 안 됩니다.
연관관계의 주인은 외래 키의 위치를 기준으로 정해야 합니다.
Member와 Order Entity가 있다고 가정해봅니다.
양방향으로 매핑했다고 생각하고 연관관계주인을 설정한다면, 외래키가 Order 기준으로 있으므로 이 두 개의 객체의 연관관계 주인은 Order로 설정해야 합니다.
@ManyToOne은 항상 연관관계의 주인(MapperBy 속성 없음)이 됩니다.
객체를 설계할 때 단방향으로 해야 하는 이유
양방향 매핑은 반대방향(객체 그래프 탐색)으로 조회 기능이 추가된 것일 뿐입니다.
설계할 때 단방향 매핑을 잘하고 양방향 매핑은 필요할 때 추가하면 됩니다.(테이블 영향 x)
반응형
'혼자 공부하는 것들 > JPA' 카테고리의 다른 글
[Spring + JPA] 동시성 문제를 해결해보자! (0) | 2022.09.09 |
---|---|
[지구최강 JPA 스터디] 6-7주차 연관관계 매핑 4가지와 단방향, 양방향! (0) | 2022.08.14 |
[지구최강 JPA 스터디] 2-3주차 몰아서 정리하자! (1) | 2022.07.13 |
[지구최강 JPA 스터디] 1주차 영속성 컨텍스트란? (0) | 2022.06.30 |
내가보려고 정리한 JPA OSIV(Open EntityManager In View) (0) | 2022.06.22 |
댓글