[TIL/JPA] 기본개념 : 고급 매핑(상속관계 매핑, @MappedSuperclass)
·
TIL/JPA
1. 상속관계 매핑객체는 상속관계가 있지만, 관계형 데이터베이스는 상속 관계가 없다.비슷한 걸로 슈퍼타입과 서브타입 관계라는 모델링 기법이 객체 상속과 유사하다.상속관계 매핑은 객체의 상속 구조와 DB의 슈퍼타입 서브타입 관계를 매핑하는 것이다. 슈퍼타입 서브타입 논리 모델을 실제 물리 모델로 구현하는 3가지 방법(DB 설계 방법)1) 조인 전략2) 단일 테이블 전략 : 논리 모델을 한 테이블로 합치는 것3) 구현 클래스마다 테이블 전략 : 테이블을 각각 만들어서 알아서 공통되는 컬럼을 가지고 있는 것* JPA 기본 전략은 단일 테이블 전략이다. 주요 어노테이션@Inheritance(strategy = InheritanceType.XXX)JOINED : 조인 전략SINGLE_TABLE : 단일 테이블 전..
[TIL/JPA] 기본 개념 : 다양한 연관관계 매핑
·
TIL/JPA
1. 연관관계 매핑시 고려사항 3가지1) 다중성다대일: @ManyToOne일대다: @OneToMany일대일: @OneToOne다대다: @ManyToMany- 다중성은 대칭성이 있다.- 다대다는 실무에서 사용하면 안된다. 2) 단방향, 양방향- 테이블> 외래키 하나로 양쪽 조인 가능하다. 그래서 방향이라는 개념이 없다. - 객체> 참조용 필드가 있는 쪽으로만 참조 가능> 한쪽만 참조하면 단방향이고, 양쪽이 서로 참조하면 양방향사실 객체 입장에서는 양방향이라는 것이 없음. 각 객체가 한쪽 방향으로 향해있으며, 단방향이 2개가 있는 것 3) 연관관계의 주인- 테이블은 외래 키 하나로 두 테이블이 연관관계를 맺음- 객체 양방향 관계는 A -> B, B -> A 처럼 참조가 2군데가 있음- 객체 양방향 관계는 참..