객체의 공통된 속성이 존재할 때, 해당 속성을 BaseEntity로 설정하여 같은 속성을 컬럼값으로 지정할 수 있다.
BaseEntity
@MappedSuperclass
public abstract class BaseEntity {
private Long id;
private String name;
위와 같이 @MappedSuperClass로 공통속성을 지정하여 Member와 Seller 객체의 인스턴스처럼 ,DB의 컬럼처럼 사용 할 수 있다.
Member 엔티티
@Entity
public class Member extends BaseEntity {
@Id
@GeneratedValue
private Long id;
......
해당 속성값을 상속받을 엔티티에서는 extends 로 상속받아 사용한다.
- 상속관계 매핑이 아닌 동일한 속성값을 상속 받는다.
- 엔티티가 아니다, 테이블과 매핑되지 않는다
- 부모 클래스를 상속 받는 자식 클래스에 매핑 정보만 제공
- 조회, 검색 불가(em.find(BaseEntity) 불가)
- 직접 생성해서 사용할 일이 없으므로 추상 클래스 권장
'JPA' 카테고리의 다른 글
값 타입 정리 (0) | 2022.12.21 |
---|---|
프록시와 연관관계 (즉시로딩/지연로딩) (0) | 2022.12.21 |
상속관계 매핑 (0) | 2022.12.20 |
연관관계 매핑 (0) | 2022.12.20 |
연관관계 매핑 기초 (0) | 2022.12.19 |