@MappedSuperclass
• 공통 매핑 정보가 필요할 때 사용(id, name)
@MappedSuperclass 사용시 주의 사항
• 상속관계 매핑X
• 엔티티X, 테이블과 매핑X
• 부모 클래스를 상속 받는 자식 클래스에 매핑 정보만 제공
• 조회, 검색 불가(em.find(BaseEntity) 불가)
• 직접 생성해서 사용할 일이 없으므로 추상 클래스 권장
@MappedSuperclass 란
• 테이블과 관계 없고, 단순히 엔티티가 공통으로 사용하는 매핑 정보를 모으는 역할
• 주로 등록일, 수정일, 등록자, 수정자 같은 전체 엔티티에서 공통 으로 적용하는 정보를 모을 때 사용
• 참고: @Entity 클래스는 엔티티나 @MappedSuperclass로 지 정한 클래스만 상속 가능
example
BaseClass
@MappedSuperclass
public class BaseEntity {
private String createBy;
private LocalDateTime createDate;
private String lastModifiedBy;
private LocalDateTime lastModifiedDate;
}
Member
@Entity
public class Member extends BaseEntity{
@Id
@GeneratedValue
@Column(name="MEMBER_ID")
private Long id;
@Column(name="USERNAME")
private String name;
}
Team
@Entity
public class Team extends BaseEntity{
@Id
@GeneratedValue
@Column(name="TEAM_ID")
private Long id;
@Column(name="TEAMNAME")
private String name;
}
데이터 베이스
MEMBER | TEAM |
MEMBER_ID | TEAM_ID |
MEMBER_NAME | TEAM_NAME |
CREATE_BY | CREATE_BY |
CREATE_DATE | CREATE_DATE |
MODIFIED_BY | MODIFIED_BY |
MODIFIDE_DATE | MODIFIDE_DATE |
'JAVA > JPA' 카테고리의 다른 글
(JPA) 즉시로딩과 지연로딩 (0) | 2021.07.04 |
---|---|
(JPA) Proxy(프록시) (0) | 2021.07.04 |
(JPA) 상속 관계 매핑 (0) | 2021.07.03 |
(JPA) 연관관계 매핑 (0) | 2021.06.29 |
(JPA) 연관 관계 (0) | 2021.06.29 |