T아카데미 - JPA 프로그래밍 기초 - [5강] 양방향 매핑
객체와 테이블의 관계를 맺는 차이
1. 객체
- 회원 -> 팀 연관관계
- 팀 -> 회원 연관관계
2. 테이블 연관관계
- 회원 <-> 팀 연관관계
* 객체의 양방향 관계는 실제로 양방향 관계가 아닌 단방향 2개이다.
* 테이블은 외래 키 하나로 양방향 관계를 만들수 있다. (조인 가능)
* member, team 간의 연관성을 만들기 위해서는 두 클래스 중 한 클래스에서 외래키를 관리해야 한다.
연관관계의 주인
* 연관관계의 주인만 외래 키를 관리 (등록 ,수정)
* 주인이 아닌 쪽은 읽기만 가능
* 주인은 mappedBy 속성을 사용할 수 없음
* 주인이 아니면 mappedBy 속성으로 주인 지정
* 외래키가 있는곳으로 주인을 정하기
양방향 매핑의 장점
* 단방향 만으로도 이미 연관관계 매핑은 완료됨
* 양방향 매핑은 반대방향으로 조회하는 기능이 추가된것 뿐임
* JPQL에서 쓸일이 많음
연관관계 매핑 어노테이션
1. 다대일 (@ManyToOne)
2. 일대다 (@OneToMany)
3. 일대일 (@OneToOne)
4. 다대다 (@ManyToMany)
5. @JoinColumn, @JoinTable
상속관계 매핑 어노테이션
1. @inheritance
2. @DiscriminatorColumn
3. @DiscriminatorValue
4. @MappedSuperclass (매핑 속성만 상속)
복합 키 어노테이션
1. @IdClass
2. @Embeddedid
3. @Embeddable
4. @Mapsld
'Back-end > Jpa' 카테고리의 다른 글
순수 JPA - JPA 객체지향쿼리 (0) | 2021.06.01 |
---|---|
순수 JPA - JPA 내부구조 (0) | 2021.06.01 |
순수 JPA - 연관관계 매핑 (0) | 2021.06.01 |
순수 JPA - 필드와 컬럼 매핑 (0) | 2021.06.01 |
순수 JPA - JPA 기초 (0) | 2021.06.01 |