忽略子类JPA中的@MappedSuperclass属性

时间:2018-10-26 07:58:11

标签: java hibernate jpa spring-data-jpa persistence

我正在使用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扩展。

我不确定是否有任何注释使该属性被映射器忽略。

谢谢您的帮助。

0 个答案:

没有答案