Hibernate注释和混合继承类型

时间:2013-12-10 08:20:32

标签: java hibernate inheritance annotations

我正在使用hibernate和annotations,我正面临着对我的类层次结构进行注释的问题 我的类层次结构如下:

ClassA 是抽象的 ClassB 是抽象的,并且扩展 ClassA
ClassC 扩展 ClassB

只有 ClassC 可以实例化,我希望:

    来自 ClassA ClassB
  • 字段位于同一个表ClassB中
  • 来自 ClassC 的字段(不是 ClassA ClassB 的字段)在另一个表ClassC中

指向 ClassB ClassC 中的外键位于ClassC的id

这里是我写的代码:

@Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public abstract class ClassA  

@Entity
@Table(name = "classB", catalog = "test")
@Inheritance(strategy = InheritanceType.JOINED)
public abstract class ClassB extends ClassA

@Entity
@Table(name = "classC", catalog = "test")
@PrimaryKeyJoinColumn(name = "id")
public class ClassC extends ClassB

有了这个,我有以下错误信息:

Mixing inheritance strategy in a entity hierarchy is not allowed, ignoring sub strategy in: ClassB

并且

Root entity should not hold an PrimaryKeyJoinColum(s), will be ignored

我读过几个帖子提到多个继承类型不能混合,其他一些试图为某些特殊情况提供warkarounds但我没有找到如何实现我想要的...这是我猜是一个很常见的案例 对此有一个很好的解决方案吗?

0 个答案:

没有答案