목차
- JPA 연관 관계 - 고아 객체
- JPA 연관 관계 - 즉시로딩과 지연로딩
- JPA 연관 관계 - 프록시 객체
- JPA 연관 관계 - @MappedSuperclass
- JPA 연관 관계 - 상속 관계 Mapping
- JPA 연관 관계 - 영속성 전이 Cascade
- JPA 연관 관계 - 양방향 연관관계와 연관과계의 주인
- JPA 연관 관계 - 양방향 연관관계
- JPA 연관 관계 - 객체 지향 스럽게 모델링 하기
- JPA 연관 관계 - 객체 관계 모델링하기
- JPA 연관 관계
공통 Mapping 정보를 관리하기 위한 MappedSuperclass
Entity 에 공통적으로 들어가는 Mapping 정보를 관리해 코드가 중복해서 작성하는 것을 방지하기 위해 사용하는 어노테이션
- 상속관계 Mapping 이 아니다.
- 부모 클래스를 상속 받는 자식 클래스에 Mapping 정보만 을 제공한다.
- 직접 생성해서 사용할 일이 없으므로 추상클래스(abstract) 를 사용하는 것이 좋다.
MappedSuperclass
클래스를 상속 받기 위해서는 같은 @MappedSuperclass 를 사용한 클래스나 @Entity 을 이용한 클래스만 상속이 가능하다.
요구 사항
모든 Entity 에는 생성자, 생성일, 수정자, 수정일 정보가 들어가야 한다.
모든 Entity 에 공통적으로 들어가는 Mapping 정보 를 관리하기 위한 BaseEntity 클래스를 생성한다.
|
공통 Mapping 정보는 상속 을 통해 현재 Entity 에 적용할 수 있다.
Member 테이블이 생성될 때 공통 Mapping 가 적용될 수 있도록 BaseEntity 를 상속 받는다.
|
Member 테이블이 생성될 때 createdBy, createdDate, lastModifiedBy, lastModifiedDate 컬럼이 생성된 것을 확인할 수 있다.
Team 테이블이 생성될 때 공통 Mapping 가 적용될 수 있도록 BaseEntity 를 상속 받는다.
|
Team 테이블이 생성될 때 createdBy, createdDate, lastModifiedBy, lastModifiedDate 컬럼이 생성된 것을 확인할 수 있다.