Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Archives
Today
Total
관리 메뉴

개발자되기 프로젝트

@MappedSuperclass 본문

인프런/[인프런] 자바ORM 표준 JPA 프로그래밍

@MappedSuperclass

Seung__ 2021. 8. 11. 22:17

1. @MappedSuperclass


  • 공통 매핑 정보가 필요할 때 사용(id, name)
  • 예를 들어 객체 마다 모두 id 와 name이 있는데 매번  만들기 너무 귀찮음..
    객체는 상속받아서 사용하면됨
  • 상속 관계 매핑이 아니라 단순이 super class의 속성만 사용함.

  • BaseEntity class
    - @MappedSuperclass
@MappedSuperclass
public abstract class BaseEntity {

    private String createdBy;
    private LocalDateTime createdDate;
    private String modifiedBy;
    private String lastModifiedBy;
    private LocalDateTime lastModifiedDate;

}
@Entity
public class Team extends BaseEntity{
Hibernate: 
    
    create table Team (
       TEAM_ID bigint not null,
        createdBy varchar(255),
        createdDate timestamp,
        lastModifiedBy varchar(255),
        lastModifiedDate timestamp,
        modifiedBy varchar(255),
        name varchar(255),
        primary key (TEAM_ID)
    )

 

2. 정리


  • 상속관계 매핑이 아님!
  • 엔티티가 아님! 따라서 테이블과 매핑하지 않음!!
  • 부모 클래스를 상속받는 자식 클래스에 매핑 정보만 제공
  • 즉 부모클래스의 속성만 가져옴
  • 엔티티가 아니니, 조회, 검색 불가
  • 직접 생성해서 사용할 일이 없으니, 추상 클래스로 사용. 
  • 테이블과 관꼐 없고, 단순하게 엔티티가 공통으로 사용하는 매핑 정보를 모으는 역할임.
  • 주로 등록일, 수정일, 등록자, 수정자 같은 전체 엔티티에서 공통으로 적용하는 정보를 모을 때 사용
  • @Entity 클래스는 @Entity나  @MappedSuperclass로 지정한 클래스만 상속 가능.

 

3. GitHub : 210811 @MappedSuperclass


 

GitHub - bsh6463/JPA

Contribute to bsh6463/JPA development by creating an account on GitHub.

github.com

 

'인프런 > [인프런] 자바ORM 표준 JPA 프로그래밍' 카테고리의 다른 글

프록시  (0) 2021.08.12
[예제] 상속관계 매핑  (0) 2021.08.11
상속관계  (0) 2021.08.11
[예제] 다양한 연관관계 추가  (0) 2021.08.11
다대다[N:M]  (0) 2021.08.11
Comments