有没有办法将Hibernate映射到可能存在或不存在的列?

时间:2011-02-08 22:58:36

标签: hibernate hibernate-mapping

我有一种情况,表上的列可能存在也可能不存在。简而言之,我们有一个可选功能,如果实现,将在列到表中。如果客户选择不具有该功能,则他们将不会拥有该列。

我正在尝试在我的DAO中为它定义一个属性,希望如果列不存在,Hibernate不会爆炸。也许将值设置为null。但是,Hibernate抛出了“无效标识符”异常。

有人知道你能不能这样做?有一个列映射,如果列在那里Hibernate填充它,但如果它不存在,一切都很好,它只是null

非常感谢。

1 个答案:

答案 0 :(得分:2)

最明显的选择是创建不同的映射,并在启动期间根据环境选择其中一个映射。

根据您配置Hibernate的方式,您可以使用一些选项来避免不同映射之间的重复:

  • 如果您使用.hbm.xml,则可以对其应用一些预处理
  • 如果您使用注释,则可以使用orm.xml语法
  • 中的配置文件覆盖它们