본문 바로가기
공부일기/JPA

JPA공부일기(6)

by 고다나 2023. 1. 12.
[자바 ORM 표준 JPA 프로그래밍 - 기본편] 섹션 5. 연관관계 매핑 기초: 단방향 연관관계~ 실전예제2.연관관계 매핑

 

연관관계가 필요한 이유

객체를 테이블에 맞춰서 데이터 중심으로 모델링 하면 협력관계를 맺을 수 없음.

테이블은 외래키로 조인을 해서 연관 테이블을 찾는 반면, 객체는 참조를 사용해 연관된 객체를 사용. 

 

단방향 연관관계

@ManyToOne과 @JoinColumn(name="pk값")으로 연관관계 매핑.

 

양방향 연관관계

@ManyToOne과 @JoinColumn(name="pk값") +

@OneToMany(mappedBy="반대쪽 객체명')으로 연관관계 매핑. 

 

-양방향 매핑 규칙

연관관계의 주인: 다대일의 관계에서 다인 경우가 주인. 연관관계의 주인만이 외래키를 관리(등록, 수정). 주인이 아닌 쪽은 읽기만 가능. 주인이 아닌 쪽은 mappedBy 사용x, 주인인 쪽은 mappedBy 속성 사용o

 

-양방향 매핑시 가장 많이 하는 실수

1. 연관관계의 주인에 값을 입력x. 주인이 아닌 쪽만 값을 입력. 

2. 양방향 매핑시 무한루프 주의(양방향 순환참조) -> entity 대신 dto로 반환, @JsonManagedReference, @JsonBackReferenced 등 해결방법 사용.

 

* 단방향 매핑만으로도 이미 연관관계 매핑 완료. 양방향 매핑은 반대방향으로 조회기능이 추가된 것뿐. 양방향은 필요할 때 추가하면 됨.(테이블에 영향x)

 

'공부일기 > JPA' 카테고리의 다른 글

JPA공부일기(8)  (0) 2023.01.27
JPA공부일기(7)  (0) 2023.01.15
JPA공부일기(5)  (0) 2023.01.02
JPA 공부일기(4)  (0) 2023.01.01
JPA 공부일기(3)  (0) 2022.12.27

댓글