我正在使用JPA,遇到了这个问题,我认为它应该很容易解决。
我有一个@MappedSuperclass,它具有许多子类的一些公共变量,其中一个子类不再需要父类的属性之一,因此我必须从数据库中删除该字段。
当我这样做时,显然会弹出一个错误,提示无法映射该属性:
“架构验证:表[Mark]中缺少列[激活]”
我会尽力弄清楚:
@MappedSuperclass 公共抽象类AbstractA扩展了SomethingElse {
@Column(name = "activation")
@Audited
protected String activation;
@Column(name = "flag")
@Audited
protected String flag;
因此,在这种情况下,子类不再需要在数据库中激活,而是需要标志
@Audited
@Entity
@Table(name = "Mark")
public class Mark extends AbstractA {
@Column(name = "name", nullable = false)
private String name;
@Column(name = "code", nullable = false, unique = true)
private String code;
因此,基本上我需要从数据库“ Mark”中删除“激活”列,但我需要使用“ Mark”类来继续从Abstract A扩展。
我不确定是否有任何注释使该属性被映射器忽略。
谢谢您的帮助。