엔티티에서 공통 매핑정보가 필요 할 때 사용한다.
예를 들어
생성자, 생성일, 수정자, 수정일과 같은 모든 엔티티에 있어야 하는 속성이 추가될 때
위 공통 속성을 갖는 클래스를 생성해 엔티티들이 extends를 하면 복붙없이 간단하게 추가 가능하다.

위와 같이 평범하게 공통 필드를 선언한 클래스를 생성하고
@MappedSuperClass 어노테이션을 추가

공통 필드가 필요한 엔티티에 extends를 사용해 상속해주면

테이블이 생성될 때 공통 필드가 함께 생성되는것을 확인할 수 있다.
실제로 BaseEntity라는 테이블이 생성되는건 아니며, 단순히 매핑정보만 제공한다.
'PROGRAMMING > JPA' 카테고리의 다른 글
| [JPA] 고아 객체 (Orphan Entity)와 orphanRemoval (0) | 2021.09.12 |
|---|---|
| [JPA] 지연 로딩과 즉시 로딩 (0) | 2021.09.11 |
| [JPA] Persist 시점 에러 (0) | 2021.09.06 |
| [JPA] @ID 와 @GENERATOR 전략 (0) | 2021.08.02 |
| [JPA] hibernate.hbm2ddl.auto 옵션 (0) | 2021.07.25 |