본문 바로가기

스파르타 부트캠프(spring)

[내일배움캠프_Spring] 자바 Spring 입문_연관 관계_230120

연관 관계 매핑

: 엔티티들은 서로 관계가 구성되어 있다. (Team 엔티티와 Member 엔티티 -> Team은 여러 MEmber를 가지는 관계이다. )객체의 참조와 테이블의 외래키를 매핑

  • JPA개념
  • 객체지향 프로그램에서의 개체와 RDB에서의 테이블이 서로 연관관계를 맺는 방법이 다르기 때문에 이 둘의 차이를 채우기 위한 매핑과저이 필요하고 이를 ORM인 JPA가 수행
방향(Direction) : 단방향 연관관계, 양방향 연관관계


다중성(Multiplicity) : 다대일(N:1), 일대다(1:N), 일대일(1:1), 다대다(N:M)

 

 

방향

단방향 관계 : 두 엔티티가 관계를 맺을 때, 한 쪽의 엔티티만 참조하고 있는 것

양방향 관계 : 두 엔티티가 관계를 맺을 때, 양 쪽이 서로 참조하고 있음.
  • 단방향 관계 

  •   객체 단방향 연관 관계 :  참조를 통해 연관된 객체를 찾는다. [ A 가 B를 참조할 때, B ->A는 안됨 ]
  •   테이블 단방향 연관 관계 : 외래키로 join -> 연관된 테이블을 조회한다. (양방향 가능)

 

  • 양방향 관계

  • 객체의 양뱡향 연관 관계 : 사실 양방향 관계가 아니라 서로 다른 단방향 관계 2개 [ A -> B(a.getB()), B -> A(b.getA()) ]
  • 테이블 양방향 연관 관계 : 양방향 참조는 외래키 하나로 연관관계를 가진다.(양쪽으로 조인 가능.)

 

 

다중성

: 어떤 엔티티를 중심으로 바라 보느냐에 따라 다중성이 다르다. 

One To One : 일대일(1 : 1)

One To Many : 일대다(1 : N)

Many To one : 다대일(N : 1)

Many To Many : 다대다(N : N)
  • 엔티티 자신을 기준으로 다중성을 생각
  • @JoinColumn 어노테이션은 외래 키를 매핑 할 때 사용.