본문 바로가기
혼자 공부하는 것들/JPA

[지구최강 JPA 스터디] 4-5주차 객체 설계 할때는 단방향으로!?

by applepick 2022. 7. 28.
반응형

양방향일 때 연관관계의 주인을 누구로 지정해야 할까?

객체의 두 관계 중 하나를 연관관계의 주인으로 지정해야 합니다. 연관관계의 주인만 외래 키를 관리(등록, 수정)가 가능합니다.

주인이 아닌 경우 읽기만 가능합니다. 

주인 -> mappedBy 사용 x

주인이 아닌경우 -> mapppedBy 속성으로 주인을 지정

 

비즈니스 로직을 기준으로 연관관계의 주인을 선택하면 안 됩니다. 

연관관계의 주인은 외래 키의 위치를 기준으로 정해야 합니다.

Member와 Order Entity가 있다고 가정해봅니다.

 양방향으로 매핑했다고 생각하고 연관관계주인을 설정한다면, 외래키가 Order 기준으로 있으므로 이 두 개의 객체의 연관관계 주인은 Order로 설정해야 합니다. 

@ManyToOne은 항상 연관관계의 주인(MapperBy 속성 없음)이 됩니다.

 

객체를 설계할 때 단방향으로 해야 하는 이유 

양방향 매핑은 반대방향(객체 그래프 탐색)으로 조회 기능이 추가된 것일 뿐입니다. 

설계할 때 단방향 매핑을 잘하고 양방향 매핑은 필요할 때 추가하면 됩니다.(테이블 영향 x)

 

반응형

댓글