연관 관계 매핑
: 엔티티들은 서로 관계가 구성되어 있다. (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 어노테이션은 외래 키를 매핑 할 때 사용.
'스파르타 부트캠프(spring)' 카테고리의 다른 글
[내일배움캠프_Spring] 자바 Spring 입문_테스트 코드 에러_230126 (0) | 2023.01.27 |
---|---|
[내일배움캠프_Spring] 자바 Spring 입문_AOP_230125 (0) | 2023.01.26 |
[내일배움캠프_Spring] 자바 Spring 입문_save(), saveAndFlush()_230119 (0) | 2023.01.20 |
[내일배움캠프_Spring] 자바 Spring 입문_Git 브랜치 활용_230118 (0) | 2023.01.18 |
[내일배움캠프_Spring] 자바 Spring 입문_예약어_230116 (0) | 2023.01.16 |