Reference. 자바 ORM 표준 JPA 프로그래밍
책 목차 및 이전 글
더보기
들어가기 전 JPA 특징, Q&A
1. JPA 소개
3. 영속성 관리
4. 엔티티 매핑
4.1 - 4.3 @Entity, @Table, 다양한 매핑
4.4 - 4.5 데이터베이스 스키마 자동 생성, DDL 생성 기능
5. 연관관계 매핑 기초
6. 다양한 연관관계 매핑
7. 고급매핑
7.2 @MappedSuperclass
- 테이블과 매핑하지 않고 부모 클래스를 상속받는 자식 클래스에게 매핑 정보만 제공
- 추상 클래스와 비슷하며 @MappedSuperclass는 실제 테이블과 매핑되지 않음
@MappedSuperclass 매핑
@MappedSuperclass
public abstract class BaseEntity {
@Id @GeneratedValue
private Long id;
private String name;
...
}
@Entity
public class Member extends BaseEntity {
//ID 상속
//NAME 상속
private String email;
}
@Entity
public class Seller extends BaseEntity {
//ID 상속
//NAME 상속
private String shopName;
}
BaseEntity
에는 공통 매핑 정보를 정의, 상속받은 엔티티는 매핑 정보를 물려 받아서 사용
- 부모로 물려받은 매핑 정보를 재정의하려면
@AttributeOverrides
나@AttributeOverride
사용@Entity @AttibuteOverrides({ @AttibuteOverride(name = "id", column = @Column(name = "MEMBER_ID")), @AttibuteOverride(name = "name", column = @Column(name = "MEMBER_NAME")), }) public class Member extends BaseEntity {...}
@MappedSuperclass의 특징
- 테이블과 매핑되지 않고 자식 엔티티의 매핑 정보를 상속하기 위해 사용
@MappedSuperclass
는 엔티티가 아니므로em.find()
,JPQL
을 사용할 수 없음
- 이 클래스를 직접 생성할 일은 없으므로 추상 클래스를 권장
- 등록일자, 수정일자, 등록자, 수정자 등 공통 속성을 효과적으로 관리
<참고>
- Entity는 Entity나 @MappedSuperclass만 상속 가능
'개발서적 > 자바 ORM 표준 JPA' 카테고리의 다른 글
[자바 ORM 표준 JPA 프로그래밍] 7.4 조인 테이블 (0) | 2021.08.18 |
---|---|
[자바 ORM 표준 JPA 프로그래밍] 7.3 복합 키와 식별 관계 매핑 (0) | 2021.08.18 |
[자바 ORM 표준 JPA 프로그래밍] 7.1 상속 관계 매핑 (0) | 2021.08.18 |
[자바 ORM 표준 JPA 프로그래밍] 6.4 다대다 (0) | 2021.08.18 |
[자바 ORM 표준 JPA 프로그래밍] 6.3 일대일 (0) | 2021.08.18 |