注释休眠继承加入子类时出错

时间:2018-10-31 14:13:49

标签: hibernate inheritance

我们正在尝试建立一个公共对象库,以供多个处理相似对象的应用程序使用。我们还建立了一个通用库来处理对多个数据库的持久性(一些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或我们应该注意的其他地方是否有一些配置/设置?

0 个答案:

没有答案