我们正在尝试建立一个公共对象库,以供多个处理相似对象的应用程序使用。我们还建立了一个通用库来处理对多个数据库的持久性(一些postgres,一些mysql,用于测试的h2等)。在这种情况下,对象通常具有为特定用途而子类化的基类。我们已经仔细研究了此资源和其他资源,以找出如何注释我们的类,以便它们在每个子类连接继承策略中使用一个表,但是,当我们编译运行我们的测试时,它似乎不具有{{3} }(和其他帖子)说会。
我们在hibernate.log中收到警告
WARN AnnotationBinder:1245-HHH000137:根实体不应该包含PrimaryKeyJoinColum,将被忽略:com.my.SubClass1
WARN AnnotationBinder:661-HHH000139:在SINGLE_TABLE层次结构的子类com.my.SubClass1中非法使用@Table
,然后使用基类和子类中的所有字段创建baseclass1表。
我们的类定义为:
@XmlType(name="baseclass1")
@XmlRootElement(name="baseclass1")
@XmlAccessorType(XmlAccessType.PROPERTY)
@Entity
@Table(name = "baseclass1")
@Inheritance(strategy=InheritanceType.JOINED)
public class BaseClass1 implements Serializable {
@Id
@Column(name="id")
private String id;
private String baseField1
...
}
@Entity
@Table(name="subclass1")
@PrimaryKeyJoinColumn(name="subclassid", referencedColumnName="id")
public class SubClass1 extends BaseClass1 {
private String subField1
....
}
hibernate.cfg.xml或我们应该注意的其他地方是否有一些配置/设置?