> For the complete documentation index, see [llms.txt](https://heunnajo.gitbook.io/jpa-basic/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://heunnajo.gitbook.io/jpa-basic/7./mapped-superclass.md).

# Mapped Superclass - 매핑 정보 상속

비즈니스 요구사항 추가

* 생성된 날짜
* 생성자
* 마지막 수정 날짜
* 마지막 수정자 데이터\
  \=>사실 생성일, 마지막 수정일은 직접 설정하지 않아도 JPA가 "이벤트" 기능으로 자동 생성해준다.

모든 테이블에 필드 추가

![](https://1863485745-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MeTGDBevaFvc3bwqqht%2F-MecYmb1DP-lqHHdq9LL%2F-MecZ96HHzYEtzStTMtZ%2FScreen%20Shot%202021-07-15%20at%202.07.48%20PM.png?alt=media\&token=992bd72c-8384-4a37-a5c0-cc8f42f4d6b7)

중복 발생!\
\=> 속성만 상속받고 싶다!

상속관계 매핑 개념이 아니라 **공통되는 속성을 사용**하고 싶을 때! 객체 간의 상속관계를 만들어주고, ❤️**상속하는 부모 클래스를 추상 클래스로 만들고, @MappedSuperclass 애노테이션을 붙여준다!**&#x20;

슈퍼클래스에 @Column 이름을 설정해주면 상속받는 모든 엔티티에도 동일하게 적용된다!

@MappedSuperclass 특징

1. 상속관계 매핑이 아니다!
2. **엔티티 아님**! 테이블과 매핑❌
3. 엔티티가 아니기 때문에 조회, 검색 불가(em.find(BaseEntity) 불가)
4. 부모 클래스를 상속 받는 자식 클래스에 매핑 정보만 제공
5. **직접 생성해서 사용할 일이 없으므로 추상 클래스 권장**
6. **JPA에서 extends 를 사용할 때**\
   **① @MappedSuperclass(슈퍼클래스)가 있거나 : 필드만 상속할 때!**\
   **@E ntity가 있거나 : 상속관계 매핑할 때!**
