[JPA] Mapped Superclass - 매핑 정보 상속

2023. 4. 17. 22:52·프로그래밍 언어/JPA
반응형

@MappedSuperclass

공통 매핑 정보가 필요할 때 사용한다.

 

공통 속성이 필요할 경우 하나의 객체로 관리할 수 있다.

예시로 모든 테이블에 등록자, 등록일, 수정자, 수정일이 필요한 경우

 

공통으로 사용할 클래스를 만들어서 @MappedSuperclass를 사용하고, 적용할 엔티티에서 상속받아 사용한다.

- 상속관계 매핑 X

- 엔티티 X, 테이블과 매핑 X

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

- 조회, 검색 불가(em.find(BaseEntity) 불가)

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

 

테이블과 관계 없고, 단순히 엔티티가 공통으로 사용하는 매핑 정보를 모으는 역할을 한다.

주로 등록일, 수정일, 등록자, 수정자 같은 전체 엔티티에서 공통으로 적용하는 정보를 모을 때 사용

 

@Entity 클래스는 엔티티나 @MappedSuperclass로 지정한 클래스만 상속이 가능하다.

 

 

엔티티

@MappedSuperclass
public abstract class BaseEntitiy {

    private String createdBy;
    private LocalDateTime createDate;
    private String lastModifiedBy;
    private LocalDateTime lastModifiedDate;
}

@Entity
public class Member extends BaseEntitiy{
    @Id
    @GeneratedValue
    @Column(name = "MEMBER_ID")
    private Long id;

    @Column(name = "USERNAME")
    private String username;

    @ManyToOne
    @JoinColumn(insertable = false, updatable = false)
    private Team team;
}
Hibernate: 
    
    create table Member (
       MEMBER_ID bigint not null,
        createDate timestamp,
        createdBy varchar(255),
        lastModifiedBy varchar(255),
        lastModifiedDate timestamp,
        USERNAME varchar(255),
        team_TEAM_ID bigint,
        TEAM_ID bigint,
        primary key (MEMBER_ID)
    )

 

반응형
저작자표시

'프로그래밍 언어 > JPA' 카테고리의 다른 글

[JPA]프록시를 사용하는 이유(즉시로딩, 지연로딩)  (0) 2023.04.22
[JPA]상속관계 매핑  (0) 2023.04.17
[JPA] 다양한 연관관계 매핑(다대일, 일대다, 일대일, 다대다)  (0) 2023.04.16
[JPA] 필드와 컬럼 매핑 어노테이션  (0) 2023.04.12
[JPA] 데이터베이스 스키마 자동 생성 옵션  (0) 2023.04.12
'프로그래밍 언어/JPA' 카테고리의 다른 글
  • [JPA]프록시를 사용하는 이유(즉시로딩, 지연로딩)
  • [JPA]상속관계 매핑
  • [JPA] 다양한 연관관계 매핑(다대일, 일대다, 일대일, 다대다)
  • [JPA] 필드와 컬럼 매핑 어노테이션
:j
:j
ddongjunn@gmail.com
  • :j
    dev.j
    :j
  • 전체
    오늘
    어제
    • :j
      • 프로그래밍 언어
        • Java
        • html
        • JavaScript
        • XML
        • JSON
        • CSS
        • jQuery
        • Web
        • k8s
        • JPA
      • 프레임워크
        • Spring
      • 코딩 테스트
        • Java
      • 네트워크
        • CCNA
      • 데이터베이스
        • Mssql
        • Oracle
      • 회고
      • :j story
      • CS
  • 블로그 메뉴

    • 홈
    • 태그
    • github
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    항해플러스백앤드
    항해99
    항해플러스백엔드
    HAVING
    Name
    항해솔직후기
    appendChild
    다형성
    class
    항해플러스
    오버라이딩
    group by
    항해백앤드
    MSSQL
    오버로딩
    지역변수
    Queue
    id
    멤버변수
    <br>
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
:j
[JPA] Mapped Superclass - 매핑 정보 상속
상단으로

티스토리툴바