Mapped Superclass - 매핑 정보 상속

비즈니스 요구사항 추가

  • 생성된 날짜

  • 생성자

  • 마지막 수정 날짜

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

모든 테이블에 필드 추가

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

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

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

@MappedSuperclass 특징

  1. 상속관계 매핑이 아니다!

  2. 엔티티 아님! 테이블과 매핑❌

  3. 엔티티가 아니기 때문에 조회, 검색 불가(em.find(BaseEntity) 불가)

  4. 부모 클래스를 상속 받는 자식 클래스에 매핑 정보만 제공

  5. 직접 생성해서 사용할 일이 없으므로 추상 클래스 권장

  6. JPA에서 extends 를 사용할 때 ① @MappedSuperclass(슈퍼클래스)가 있거나 : 필드만 상속할 때! @E ntity가 있거나 : 상속관계 매핑할 때!

Last updated

Was this helpful?