-
-
안녕하세요? 오늘은 JPA의 상속관계중에서, MappedSuperclass에 대해서 알아보도록 하겠습니다.
※ JPA의 상속관계 매핑에 대해서는 아래 포스팅을 참조 부탁드리겠습니다.
https://logger-debug.tistory.com/entry/JPA-%EC%83%81%EC%86%8D%EA%B4%80%EA%B3%84-%EB%A7%A4%ED%95%91
JPA 상속관계 매핑
--안녕하세요? 오늘은, JPA의 고급매핑 중에서, 상속관계 매핑에 대해서 알아보도록 하겠습니다. -상속관계 매핑이란?: 객체의 상속과 구조와 DB의 슈퍼타입 서브타입 관계를 매핑: @Ingeritance 를
logger-debug.tistory.com
-
@MappedSuperclass
: 공통 매핑 정보가 필요할 때 사용 : 부모 클래스를 상속받는 자식클래스에 매핑 정보만 제공 : 조회, 검색 불가 : 직접 생성 사용이 아닌, 추상 클래스 권장 상속관계가 전혀 아님 엔티티가 아님 > 테이블과 매핑이 안된다. |
기준 공통 엔티티 생성)
@MappedSuperclass
public class BaseEntity {
private String createdBy;
private LocalDateTime createdDate;
private String modifiedBy;
private LocalDateTime modifiedDate;
}
EntityA 엔티티 생성)
@Entity
public class EntityA extends BaseEntity {
@Id @GeneratedValue
@Column(name = "ENTITYA_ID")
private Long id;
@Column(name = "ENTITYA_NAME")
private String name;
...
}
EntityB 엔티티 생성)
@Entity
public class EntityB extends BaseEntity {
@Id @GeneratedValue
@Column(name = "ENTITYB_ID")
private Long id;
@Column(name = "ENTITYB_NAME")
private String name;
...
}
샘플코드)
EntityManagerFactory emf = Persistence.createEntityManagerFactory("유닛명");
EntityManager em = emf.createEntityManager();
EntityTransaction tx = em.getTransaction();
tx.begin();
EntityA entityA = new EntityA();
entityA.setName("entityA_1");
entityA.setCreatedBy("Shin");
entityA.setCreatedDate(LocalDateTime.now());
entityA.setModifiedBy("Shin");
entityA.setModifiedDate(LocalDateTime.now());
em.persist(entityA);
tx.commit();
-
MappedSuperclass는 테이블과 관계가 없고, 단순히 엔티티가 공통으로 사용하는 매핑 정보를 모으는 역활을 합니다.
주로, 등록일 / 수정일 / 등록자 / 수정자 같은, 전체 엔티티에서 공통으로 적용하는 정보를 모을때 사용합니다.
JPA에서 @Entity 클래스는, 같은 Entity나 MappedSuperclass로 지정한 클래스만 상속이 가능합니다.
오늘은 JPA의 상속관계중에서, MappedSuperclass에 대해서 알아보았습니다.
그럼 오늘도 즐거운 하루 되시길 바라겠습니다.
'프로그래밍 > Back-end' 카테고리의 다른 글
JPA 영속성과 영속성 컨텍스트에 대하여! (0) | 2024.10.15 |
---|---|
JPA 데이터 타입과 기본 임베디드 컬렉션에 대하여! (0) | 2024.10.14 |
JPA 키 매핑 종류와 전략에 대해서! (0) | 2024.10.14 |
JPA 주요 매핑 어노테이션에 대해서! (0) | 2024.10.14 |
JPA 상속관계 매핑 (0) | 2024.10.11 |
JPA 객체 지향 모델링 연관관계 매핑 (2탄) (0) | 2024.10.11 |
JPA 객체 지향 모델링 연관관계 매핑 (1탄) (0) | 2024.10.11 |
Java의 인터셉터(Interceptor)와 필터(Filter)에 대해서! (0) | 2024.10.10 |