@MappedSuperclass
public abstract class BaseEntity {
@Id @GeneratedValue
private Long id;
private String name;
}
@Entity
public class Member extends BaseEntity {
// ID 상속
// Name 상속
}
BaseEntity는 테이블과 매핑되지 않고, 자식 Entity에게 공통으로 사용되는 매핑정보만 제공한다.
매핑 정보를 재정의하고 싶으면 클래스 레벨에 @AttributeOverrides나 @AttributeOverride를 사용한다.
연관관계를 재정의하려면 @AssociationOverrides나 @AssociationOverride를 사용한다.
@MappedSuperclass는 테이블과는 관계가 없고 단순히 엔티티가 공통으로 사용하는 매핑 정보를 모아주는 역할만 한다.