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

+ Recent posts