解决方法如下所述:
将您的
Parent类定义为 MappedSuperClass 。假设父类映射到
PARENT_TABLE
@MappedSuperClasspublic abstract class AbstractParent implements Serializable { @Id @GeneratedValue private long id; @Column(table="PARENT_TABLE") private String someProperty; // getter's and setter's}对于每个子类,扩展
AbstractParent该类并定义其 SecondaryTable 。父类中定义的任何持久字段都将映射到_SecondaryTable_ 定义的表。最后,如果需要,请使用AttributeOverrides
@Entity@SecondaryTable("PARENT_TABLE")public class Child extends AbstractParent { private String childField; public String getChildProperty() { return childField; }}并定义另一个实体,以仅检索父类
@Entity@Table(name="PARENT_TABLE")@AttributeOverrides({ @AttributeOverride(name="someProperty", column=@Column(name="someProperty"))})public class Parent extends AbstractParent {}没有其他的。如上所示,我仅使用了JPA特定的批注



