JPA
[JPA] @MappedSuperClass 란?
onejunu
2020. 8. 6. 14:16
엔티티를 살펴보면 상당히 공통적인 필드들이 많다.
언제 생성되었는지 언제 수정되었는지 등등 ...
이러한 필드들을 공통적으로 관리할 수 없을까 ?? 해서 나온것이 @MappedSuperClass다.
@MappedSuperClass 는 단순히 매핑정보만 제공할 뿐이며 그이상 그이하도 아니다.
따라서 abstract로 추상클래스로 선언하는 경우가 많다.
보통의 엔티티에서는 @MappedSuperClass를 상속받아서 쓰면된다.
그렇다고 상속관계의 매핑이 전혀 아니다. 헷갈리면 안된다.
예)
@MappedSuperClass
abstract class 시간찍기{
업데이트시간,
생성시간,
}
class 객체 extends 시간찍기{
이름;
나이;
.....
}
위처럼 생성했을 때, 데이터베이스에서 보면
객체에는 업데이트시간과 생성시간이 필드로 나와있는 것을 볼 수 있다.