@MappedSuperclass
- 공통 매핑 정보가 필요할 때 사용한다. 이때 DB 상에서는 서로 연관이 없으나 공통되는 속성이 존재할 때 편의를 위해 사용한다.
![](https://velog.velcdn.com/images%2Fminmin_key%2Fpost%2Ff87a40b3-01ba-4b13-85d1-bca1d0df89de%2Fimage.png)
- 상속 관계 매핑이 아니다.
- 엔티디가 아니고, 테이블과 매핑하지 않는다.
- 부모 클래스를 상속 받는 자식 클래스에 매핑 정보만 제공한다.
(@Entity 클래스는 Entity나 @MappedSuperclass로 지정한 클래스만 상속 가능하다.)
- 조회, 검색 불가하다. (em.find(BaseEntity) 불가)
- 직접 생성해서 사용할 일이 없으므로 추상 클래스를 권장한다.
- 코드 구현
@MappedSuperclass
public class BaseEntity {
private Long id;
private String name;
}
...
@Entity
public class Member extends BaseEntity {
...
}
[Reference]
Inflearn 김영한 님의 자바 ORM 표준 JPA 프로그래밍 - 기본편 : https://www.inflearn.com/course/ORM-JPA-Basic/dashboard