
공통 매핑 정보가 필요할 때 사용
생성 시간, 수정 시간, 작성자 등에도 사용 가능하다.
@MappedSuperclass
public class BaseEntity {
private String createdBy;
private LocalDateTime createdDate;
private String lastModifiedBy;
private LocalDateTime lastModifiedDate;
}
위와 같이 중복되는 필드를 빼서 필요한 엔티티마다 extends하여 사용하면 된다.
상속관계 매핑 X, 엔티티 X, 테이블과 매핑 X
부모 클래스를 상속 받는 자식 클래스에 매핑 정보만 제공
조회, 검색 불가(em.find(BaseEntity) 불가)
추상 클래스로 만들기 권장
테이블과 관계 없이 단순히 엔티티가 공통으로 사용하는 매핑 정보를 모으는 역할
주로 등록일, 수정일, 등록자, 수정자와 같은 전체 엔티티에서 공통으로 적용하는 정보를 모을 때 사용
참고: @Entity 클래스는 엔티티나, @MappedSuperclass를 선언한 클래스만 상속 가능하다.