만약 여러가지 ITEM이 있고 어떤 ITEM을 사용하는지에 따라 변경되는 값이 있다면, 공통으로 사용되는 테이블, 특정 ITEM만 가지고있는 특정 ITEM 테이블 을 생성해준후 사용한다.
EX ) 공통사용 ( ITEM ), 특정 ITEM ( MOVIE )
- ITEM에는 id, name, price 의 값이 들어감.
- Movie에는 director, actor의 값이 들어감.
JOIN 혹은 단일테이블 등의 형식으로 사용할 수 있음.
(부모)
** DTYPE이란?
실무에서 테이블 생성시 거의 무조건 들어가는 컬럼이 있다.
createdBy, CreateDate, lastModifiedBy, ModifyDate, Delete, DeleteDate
매번 모든 엔티티에 위의 컬럼들을 만들어 내는건 너무 불필요한 작업같다.
그렇다면 위의 값을 담을 클래스를 만들어 놓고, 엔티티에서 끌어다 쓰면 안될까?
가능하다.
끌어다 쓸 클래스를 추상클래스로 만든다.
BaseEntity.java
@MappedSuperclass
public abstract class BaseEntity {
private String createdBy;
private LocalDateTime createdDate;
private String lastModifiedBy;
.
.
.
}
@Entity
public class Member extends BaseEntity{
.
.
.
}