【发布时间】:2020-11-06 22:32:45
【问题描述】:
这是我继承的子实体如下:-
@AllArgsConstructor
@Getter
@Setter
@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@Table(name = "SUB_TABLE")
@DiscriminatorValue("R")
public class SubTable extends BaseAudit {
@Column(name = "REV", updatable = false, insertable = false)
private long rev;
@Column(name = "REVTYPE", updatable = false, insertable = false)
private long revType;
@Column(name = "active_from", updatable = false, insertable = false)
private Instant activeFrom;
@Column(name = "active_to", updatable = false, insertable = false)
private Instant activeTo;
public SubTable() {
}
}
我的基本实体如下:-
@Entity
@Table(name = "BASE_AUDIT")
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name = "derive_type")
public abstract class BaseAudit {
@Id
@GeneratedValue
@Column(name = "id")
public Long id;
@Version
@Column(name = "version")
public Long version;
@CreatedBy
@Column(name = "created_by")
public String createdBy;
@CreatedDate
public Instant created;
@LastModifiedBy
@Setter(AccessLevel.PRIVATE)
@Column(name = "updated_by")
public String updatedBy;
@LastModifiedDate
@Setter(AccessLevel.PRIVATE)
public Instant updated;
@Column(name = "derive_type", insertable = false, updatable = false)
public String deriveType;
}
我将有许多子实体将继承自这个 BaseAudit 实体。我收到以下错误:-
init 方法调用失败;嵌套异常是 javax.persistence.PersistenceException:[PersistenceUnit:默认] 无法建立 Hibernate SessionFactory;嵌套异常是 org.hibernate.tool.schema.spi.SchemaManagementException: 架构验证:表 [base_audit] 中缺少列 [active_to]
因此它抱怨缺少基本实体的 active_to 列。但是此列来自子实体。我不需要这个基础实体。我将有许多其他子实体,只有常见的子实体在基础实体中。我怎样才能做到这一点?
【问题讨论】:
标签: java spring-boot hibernate jpa