JPA - @MappedSuperclass, BaseEntity란?

2023. 5. 13. 14:57·Back-End/JPA

 

@MappedSuperclass

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

주로 사용하는 컬럼인 id, name, 작성일, 등록자 등의 정보를 담은 공통으로 사용하는 정보를 모아서 작성하여야하는 코드를 줄여준다.

특징

  • 상속관계 매핑X
  • 엔티티X, 테이블과 매핑X
  • 부모 클래스를 상속 받는 자식클래스에 매핑 정보만 제공
  • 조회, 검색 불가(em.find(BaseEntity) 불가)
  • 직접 생성해서 사용할 일이 없으므로 추상 클래스를 권장

구현 코드

@MappedSuperclass
@Getter
@Setter
public abstract class BaseEntity {

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

@MappedSuperClass를 사용해여 매핑 정보 상속을 할 수 있게 지정하여주고

@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn
public class Item extends BaseEntity{

    @GeneratedValue
    @Id
    private Long id;

    private String name;
    private int price;
}

다른 엔티티에서 이를 사용하기 위해서는 해당 클래스를 상속받으면 된다.

 

참고

해당 글은 김영한님의 자바 ORM 표준 JPA를 공부하며 작성한 글입니다.

https://www.inflearn.com/course/ORM-JPA-Basic/dashboard

 

자바 ORM 표준 JPA 프로그래밍 - 기본편 - 인프런 | 강의

JPA를 처음 접하거나, 실무에서 JPA를 사용하지만 기본 이론이 부족하신 분들이 JPA의 기본 이론을 탄탄하게 학습해서 초보자도 실무에서 자신있게 JPA를 사용할 수 있습니다., - 강의 소개 | 인프런

www.inflearn.com

 

반응형
저작자표시 (새창열림)
'Back-End/JPA' 카테고리의 다른 글
  • JPA - 즉시 로딩과 지연 로딩
  • JPA - 프록시란?
  • JPA - 상속관계 매핑
  • JPA - 다대일, 일대다, 다대다 매핑
LightSource
LightSource
어제보단 발전한 오늘의 나를 위한 블로그
    반응형
  • LightSource
    LightSourceCoder
    LightSource
  • 전체
    오늘
    어제
    • 분류 전체보기 (162)
      • Git (4)
      • Language (6)
        • Java (6)
      • Back-End (72)
        • Spring Boot (4)
        • MyBatis (1)
        • Oracle (1)
        • PL SQL (3)
        • JPA (25)
        • Spring Data JPA (5)
        • Spring MVC (8)
        • Spring (12)
        • Spring Security (2)
        • Redis (1)
        • queryDSL (10)
      • Front-End (38)
        • 아이오닉 (2)
        • JSP (7)
        • JavaScript (4)
        • React (16)
        • TypeScript (3)
        • Angular (6)
      • AWS (1)
      • CI & CD (2)
      • 개발지식 (13)
        • 네트워크 (9)
        • CS 지식 (4)
      • 데이터모델링 (2)
      • Tool (1)
      • 프로젝트 (5)
      • 독후감 (2)
      • 잡생각 (0)
      • 면접 준비 (1)
      • 알고리즘 (14)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    배열요소삭제
    배요소열추가
    배열요소수정
    리액트
    react
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
LightSource
JPA - @MappedSuperclass, BaseEntity란?
상단으로

티스토리툴바