19. 다대일 [N:1]

김성수·2023년 4월 7일
0

⚡ 생각대로 살지 않으면 사는대로 생각한다.

⚡ 나는 어차피 잘 될 놈이다. 이미 잘 되고 있고, 계속해서 잘 되고 있다.


다양한 연관관계 매핑

목차

연관관계 매핑시 고려사항 3가지

다대일 [N:1]

일대다 [1:N]

일대일 [1:1]

다대다 [N:M]


연관관계 매핑시 고려사항 3가지

다중성

단방향, 양방향

연관관계의 주인


다중성

다대일 : @ManyToOne

일대다 : @OneToMany

일대일 : @OneToOne

다대다 : @ManyToMany

※ 다대다는 쓰지않는 것이 좋음.


단방향, 양방향

테이블

  • 외래 키 하나로 양쪽 조인 가능
  • 사실 방향이라는 개념이 없음

객체

  • 참조용 필드가 있는 쪽으로만 참조가능
  • 한쪽만 참조하면 단방향
  • 양쪽이 서로 참조하면 양방향
    • 사실 양방향이란 건 없음..
    • 사람이 이해하기 쉽게 용어를 만든 것뿐, 객체는 단방향이다.

연관관계의 주인

  • 테이블은 외래 키 하나로 두 테이블이 연관관계를 맺음
  • 객체 양방향 관계는 A->B, B->A처럼 참조가 2군데
  • 객체 양방향 관계는 참조가 2군데 있음. 둘중 테이블의 외래 키를 관리할 곳(연관관계의 주인)을 지정해야 함
  • 연관관계의 주인 : 외래키를 관리하는 참조
  • 주인의 반대편 : 외래키에 영향을 주지 않음, 단순 조회만 가능

다대일 [N:1]

※ JPA에서 가장 많이 사용함.

다대일 단방향

  • 테이블 설계에서 일대다(1:N) 관계라면, 다(N)쪽외래 키가 있어야한다.
  • 외래 키를 기준으로 연관된 참조를 매핑해주면 된다.

다대일 단방향 정리

가장 많이 사용하는 연관관계

다대일의 반대는 일대다

다대일 양방향

  • 반대쪽에서 매핑을 추가한다고 해서 테이블에 영향을 전혀 주지는 않는다.

다대일 양방향 정리

외래 키가 있는 쪽이 연관관계의 주인

양쪽을 서로 참조하도록 개발할 때 필요.


-끝-

profile
쌩수 Git >> https://github.com/SsangSoo?tab=repositories

0개의 댓글