Hibernate:将单个列映射到不同的表

时间:2011-03-25 14:35:19

标签: hibernate mapping

我有以下表格:

Template(
Template_Id,
Template_Name,
Component_Type,
Component_Id
)

Division(
Division_Id,
Division_Name
)

SubDivision(
SubDivision_Id,
SubDivision_Name
)

Department(
Department_Id,
Department_Name
)

在Template表中,Component_Type字段可以包含值Division或SubDivision或Department。

Component_Id将包含Division_Id或SubDivision_Id或Depatment_Id,具体取决于Component_Type。

我知道Template表没有完全规范化,最好有不同的表,如Template_Division,Template_SubDivision等...... 但是,这些是现有表格,我们无法对其进行修改。

我的问题是, 我应该如何在Template类中配置Component_Id列?

Template.java将如下所示: -

public class Template{

@Id
@Column(name="Template_Id)
private Long id;

@Column(name="Template_Name)
private String name;

@Column(name="Component_Type")
private String componentType; 

}

有人可以解释如何配置Component_Id列吗?

感谢。

1 个答案:

答案 0 :(得分:0)

您可以使用@Any annotation。请注意,从Hibernate 3.5开始,您必须通过Session接口(即不是EntityManager)访问Hibernate才能使用它。