시냅스

JPA MappedSuperclass 정리 본문

Java, Spring/JPA

JPA MappedSuperclass 정리

ted k 2022. 9. 17. 13:41

MappedSuperclass

  • 상속관계 매핑과는 관련이 없다.
  • 엔티티, 테이블과 매핑할 수 없다.
  • 부모 클래스를 상속 받는 자식 클래스에 매핑 정보만 제공한다.
  • 테이블과 관계 없고 단순히 엔티티가 공통으로 사용하는 매핑 정보를 모으는 역할
  • 조회, 검색 불가. (em.find(BaseEntity) 불가)
  • 직접 생성해서 사용할 일이 없으므로 추상 클래스를 권장한다.
  • 주로 등록일 수정일 등록자 수정자 등 전체 엔티티에서 공통으로 적용하는 정보를 모을 때 사용한다.
  • 참고로 @Entity 클래스는 엔티티나 @MappedSuperclass로 지정한 클래스만 상속 가능하다.

 

@MappedSuperclass
public abstract class BaseEntity {
    private String createdBy;
    private LocalDateTime createdDate;
    private String lastModifiedBy;
    private LocalDateTime lastModifiedDate;
}

 

@Entity
public class Member extends BaseEntity {
// ...
}

'Java, Spring > JPA' 카테고리의 다른 글

JPA 즉시 로딩과 지연 로딩, 영속성 전이와 고아 객체  (0) 2022.09.17
JPA 프록시 관련 정리  (0) 2022.09.17
JPA 상속관계 매핑 정리  (0) 2022.09.17
JPA 연관관계 정리  (0) 2022.09.16
JPA 엔티티 매핑 정리  (0) 2022.09.16
Comments