我正在使用hibernate和annotations,我正面临着对我的类层次结构进行注释的问题 我的类层次结构如下:
ClassA 是抽象的
ClassB 是抽象的,并且扩展 ClassA
ClassC 扩展 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但我没有找到如何实现我想要的...这是我猜是一个很常见的案例 对此有一个很好的解决方案吗?