JPA
@MappedSuperclass
쭈녁
2022. 12. 20. 21:55
객체의 공통된 속성이 존재할 때, 해당 속성을 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) 불가)
- 직접 생성해서 사용할 일이 없으므로 추상 클래스 권장