Java 如何在hibernate POJO中映射公共字段?
每个表中都有一些公共字段,因此我需要一个hibernate POJO并从中扩展:Java 如何在hibernate POJO中映射公共字段?,java,hibernate,jakarta-ee,orm,postgresql-9.4,Java,Hibernate,Jakarta Ee,Orm,Postgresql 9.4,每个表中都有一些公共字段,因此我需要一个hibernate POJO并从中扩展: public class BaseClass { @Column(name="isActive") private Boolean isActive; public BaseClass() { isActive = true; } // Getter and Setter } .... @Entity @Table(name = "ABC", schema = "ABC
public class BaseClass {
@Column(name="isActive")
private Boolean isActive;
public BaseClass() {
isActive = true;
}
// Getter and Setter
}
....
@Entity
@Table(name = "ABC", schema = "ABC")
@SequenceGenerator(name = "ABC_seq", sequenceName = "ABC_seq", schema = "ABC", allocationSize = 1)
public class SubClass extends BaseClass {
@Id
// Other stuff here
public SubClass() {
super();
}
}
到目前为止,子类仍然有效,但isActives setter的更改对我的数据库(Postgres)没有任何影响。
将基类标记为@Entity也没有任何效果。
我的解决方案与这里的另一个类似。基类必须用MappedSuperclass注释。HIbernate提供了3种策略,您可以实现这些策略来将子类映射到superclass,请看这里@JB nize谢谢,它适合我。在阅读一些google搜索结果时,我认为MappedSuperclass只适用于id为(主键)的类。我真丢脸:/