[자바 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 |
댓글