본문 바로가기
JPA

[JPA] @MappedSuperClass 란?

by onejunu 2020. 8. 6.

엔티티를 살펴보면 상당히 공통적인 필드들이 많다. 

 

언제 생성되었는지 언제 수정되었는지 등등 ...

 

이러한 필드들을 공통적으로 관리할 수 없을까 ?? 해서 나온것이 @MappedSuperClass다.

 

@MappedSuperClass 는 단순히 매핑정보만 제공할 뿐이며 그이상 그이하도 아니다.

따라서 abstract로 추상클래스로 선언하는 경우가 많다. 

 

보통의 엔티티에서는 @MappedSuperClass를 상속받아서 쓰면된다.

그렇다고 상속관계의 매핑이 전혀 아니다. 헷갈리면 안된다.

 

예)

 

@MappedSuperClass

abstract class 시간찍기{

    업데이트시간,

    생성시간,

}

 

 

class 객체 extends 시간찍기{

    이름;

    나이;

.....

}

 

위처럼 생성했을 때, 데이터베이스에서 보면

객체에는 업데이트시간과 생성시간이 필드로 나와있는 것을 볼 수 있다.

댓글