테이블을 설계하다보면 칼럼이 많이 중복되는 경우가 있을 수 있다.
(정규화를 할 수 없는 경우, 예를 들어 히스토리 성 테이블 같은 경우)
테이블과 매핑하지 않고 부모 클래스를 상속받는 자식 클래스에게 매핑 정보(엔티티 칼럼)만 제공하고 싶으면
@MappedSuperclass를 사용하면 된다.
@MappedSuperclass는 비유를 하자면 추상 클래스와 비슷한데 @Entity는 실제 테이블과 매핑되지만
@MappedSuperclass는 실제 테이블과 매핑 되지 않는다.
단순한 상속 목적으로 사용한다.
@MappedSuperclass
@Data
public abstract class BaseEntity {
@Id
@GeneratedValue
private Long id;
private String name;
}
@Entity
@Data
public class Member extends BaseEntity {
//ID, NAME 상속
private String email;
}
@Entity @Data
public class Seller extends BaseEntity {
//ID, NAME 상속
private String shopName;
}
'Programming > Java & JSP & Spring' 카테고리의 다른 글
[Spring] @Retryable 어노테이션 (0) | 2019.08.13 |
---|---|
[Spring] 자동설정 (AutoConfiguration) (0) | 2019.08.11 |
[SpringBoot] 프로파일(Profile) 설정 (0) | 2018.01.31 |
[Spring Boot] 스프링부트에서 JSP 사용하기 (0) | 2018.01.25 |
[JPA] 테이블생성 어디서 할 것인가? (0) | 2018.01.25 |