부모 클래스는 테이블과 매핑하지 않고 부모 클래스를 상속받는 자식 클래스에게 매핑 정보만 제공하고 싶을 때 사용한다.
등록일자, 수정일자, 등록자, 수정자 같은 여러 엔티티에서 공통으로 사용하는 속성을 효과적으로 관리할 수 있다.
테이블
엔티티
@MappedSuperclass
public abstract class BaseEntity {
@Id @GeneratedValue
private Long id;
private String name;
}
@Entity
public class Member extends BaseEntity {
private String email;
}
@Entity
public class Seller extends BaseEntity {
private String shopName;
}
부모로부터 물려받은 매핑 정보를 재정의하려면 @AttributeOverrides, @AttrubuteOverride를 사용한다.
@Entity
@AttributeOverrides({
@AttributeOverride(name = "id", column = @Column(name = "MEMBER_ID")),
@AttributeOverride(name = "name", column = @Column(name = "MEMBER_NAME")),
})
public class Member extends BaseEntity{
private String email;
}
728x90
'JVM > JPA' 카테고리의 다른 글
@JoinTable (0) | 2023.06.19 |
---|---|
@MapsId (0) | 2023.06.18 |
상속 관계 매핑 (슈퍼-서브 타입 모델링) (0) | 2023.06.17 |
복합키 매핑 @IdClass, @EmbeddedId (0) | 2023.06.16 |
@ManyToMany (0) | 2023.06.16 |