将多个类映射到休眠状态中的表,不带 DTYPE 列
我有两个休眠类:一个基类和一个具有附加字段的扩展类。(这些字段由其他表映射。
例如,我有:
@Entity
@Table(name="Book")
public class A {
private String ID;
private String Name;
// ...
}
@Entity
@Table(name="Book")
public class B extends A {
public String node_ID;
// ...
}
public class Node {
public String ID; // maps to B.node_ID
// ...
}
如何在Hibernate中映射它?休眠文档声明了三种类型的继承配置:每个类一个表、一个具有类型列的表和一个联接表 - 这些都不适用于此处。
我需要这样做的原因是,类A来自通用框架,该框架在多个项目上重复使用,而类B(和Node)是特定于一个项目的扩展 - 它们不会再次使用。将来,我可能会有一个带有house_ID或其他领域的C类。
编辑:如果我尝试上述伪代码配置(映射到同一表的两个实体),我会收到一个错误,指出DTYPE列不存在。HQL 附加了一个“WHERE DTYPE=”A”。