
이번 글은 @MappedSuperClass에 대한 내용이다. 사실 JPA 상속 관계 매핑 글에 내용을 추가하여 작성하려했지만, 상속 매핑과 관계가 없고 헷갈릴 수 있겠다 싶어서 별도로 정리해보고자 한다.
이 어노테이션은 DB 테이블과 관계없이 객체 입장에서 속성만 상속 받아 사용하고 싶을 때 이용한다. 즉, 공통의 매핑 정보가 필요할 때 사용하는 어노테이션이다. 주로 등록일, 수정일, 등록자, 수정자 같은 정보에서 많이 사용한다.

사용방법은 간단하다. 공통의 필드를 명시해놓은 클래스에 어노테이션을 선언해주고, 해당 클래스를 상속받아서 이용만해주면 된다.
@MappedSuperClass
public abstract class BaseEntity {
private LocalDateTime createdAt;
private LocalDateTime updatedAt;
}
이 어노테이션의 특징은 다음과 같다.
em.find(BaseEntity))