假设我有一个带有一些数据的A类
@Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public abstract class A {
@Id
@Column
int id;
@Column
String name;
}
现在我想改变子类的策略
@Entity
public class B extends A {
@Column
String extraFieldFromB;
}
@Entity
public class C extends B {
@Column
String extraFieldFromC;
}
问题是我真正问题的简化。我想知道我是否可以在B类上使用不同的策略(理想情况是JOINED,但可以接受SINGLE_TABLE)。我知道A的策略选择错误,但现在改变它的工作太多了。我只能为A的后代(这几乎是我项目中的每个班级)做正确的事情。
当我尝试在B中包含JOINED继承时,hibernate错误指向我在C表中缺少A的字段。它甚至可能是我想要实现的吗?
提前致谢。