연관관계 맵핑

Shaun·2021년 8월 31일
1

JPA

목록 보기
8/31

책으로 배웠을떄 그려러니 하면서 넘어가서 활용을 할때 잘 사용하지 못했던 부분에 대해서 다시 뒤로돌아가 배워봤다.

연관관계 맵핑

  • 이런식으로 연관관계를 만들어준다. 중요한점은 객체와 테이블의 연관관계의 차이점을 아는것이 가장 중요하다.

  • 객체연관관계를 설정 해준다. (참조 대신에 외래키를 그대로 사용)
  • 이러한 방식을 데이터 중심 설계라 한다.
  • 객체를 테이블에 맞춰 모델링 (테이블 위주)

    이러한 데이터 중심설계의 문제점!!!!

-> 객체를 테이블에 맞추어 데이터 중심설계로 가면 협력관계를 만들수 없다.

-> 조회하거나 수정을 할떄 맴버 객체 얻어오고 ,아이디 얻어오고 팀 객체얻어오고 아이디얻어오고..... 객체지향이 아니다!

테이블 vs객체 차이점

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

객체지향 모델링



  • 객체지향으로 모델링을 맴버객체를 불러와 바로 팀객체를 참조 할수 있다!

양방향 연관관계



  • 자유롭게 양쪽에서 조회가능!

  • 양방향 연관관계를 당하는(?) 쪽에서는 꼭 mappedBy를 써줘야한다.

  • 객체의 양방향은 사실 단방향 두개이다

  • 테이블은 fk 하나로 양쪽 자유롭게 (양방향) 가능 하다.

연관관계 주인

양방향 매핑 규칙

• 객체의 두 관계중 하나를 연관관계의 주인으로 지정

연관관계의 주인만이 외래 키를 관리(등록, 수정)

• 주인이 아닌쪽은 읽기만 가능

• 주인은 mappedBy 속성 사용X

• 주인이 아니면 mappedBy 속성으로 주인 지정'

• 다대일 경우 '다' 쪽이 무조건 fk를 가지고 연관관계 주인이다.

-핵심-
단방향으로도 맵핑이 끝나니 될수 있으면 단방향으로하고 나중에 필요할때(조회) 그때 양방향으로 만든다. 굳이 양방향으로 스타트 할필요 없다.

profile
호주쉐프에서 개발자까지..

0개의 댓글