inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[인프런 워밍업 클럽 스터디] 10일차 - 객체지향과 JPA 연관관계

Lynn
0

image

[1 : 1 관계]

[연관관계의 주인]

[연관관계의 주인 효과]

  1. 상대 테이블을 참조하고 있으면 연관관계의 주인

  2. 연관관계의 주인이 아니면 mappedBy를 사용

  3. 연관관계의 주인의 setter가 사용되어야만 테이블 연결

 

[N : 1 관계] - @ManyToOne 과 @OneTOMany

@JoinColumn

 

[N : M 관계] - @ManyToMany

구조가 봅잡하고, 테이블이 직관적으로 매핑되지 않아 사용하지 않는 것을 추천

 

 

 

[연관관계 정리]

  1. 상대 테이블을 가리키는 테이블이 연관관계의 주인이다. 연관관계의 주인이 아닌 객체는 mappedBy를 통해 주인에게 매여 있음을 표히새 주어야 한다.

  2. 양쪽 모두 연관관계를 갖고 있을 때는 양쪽 모두 한 번에 맺어주는게 좋다.

  3. cascade 옵션을 활용하면, 저장이나 삭제를 할 때 연관관계에 놓인 테이블까지 함께 저장 또는 삭제가 이루어진다.

  4. orphanRemoval 옵션을 활용하면, 연관관계가 끊어진 데이터를 자동으로 제거해준다.

 

 

[연관관계를 사용하면 무엇이 좋을까?]

  1. 각자의 역할에 집중하게 된다.(응집성)

  2. 새로운 개발자가 코드를 읽을 때 이해하기 쉬워진다.

  3. 테스트 코드 작성이 쉬워진다.

[연관관계를 사용하는 것이 항상 좋을까?]


 

Section 5. 정리

  1. 책 생성, 대출, 반납 API를 온전히 개발하며 지금까지 다루었던 모든 개념을 실습해본다.

  2. 객체지향적으로 설계하기 위한 연관관계를 이해하고, 연관관계의 다양한 옵션에 대해 이해한다.

  3. JPA에서 연관관계를 매핑하는 방법을 이해하고, 연관관계를 사용해 개발할 때와 사용하지 않고 개발할 때의 차이점을 이해한다.

 

 

 

백엔드 워밍업클럽스터디 백엔드 자바 스프링부트

답변 0