Programming/Java & JSP & Spring
[JPA] Entity 칼럼 상속
henry-jo
2019. 8. 10. 14:08
테이블을 설계하다보면 칼럼이 많이 중복되는 경우가 있을 수 있다.
(정규화를 할 수 없는 경우, 예를 들어 히스토리 성 테이블 같은 경우)
테이블과 매핑하지 않고 부모 클래스를 상속받는 자식 클래스에게 매핑 정보(엔티티 칼럼)만 제공하고 싶으면
@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;
}