Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有办法将Hibernate映射到可能存在或不存在的列?_Hibernate_Hibernate Mapping - Fatal编程技术网

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

有没有办法将Hibernate映射到可能存在或不存在的列?,hibernate,hibernate-mapping,Hibernate,Hibernate Mapping,我有一种情况,表上的列可能存在,也可能不存在。长话短说,我们有一个可选特性,如果实现,它将把一列附加到表中。如果客户端选择不具有该功能,则它们将不具有该列 我试图在我的DAO中为它定义一个属性,希望在列不存在时Hibernate不会崩溃。可能通过将值设置为null。但是,Hibernate抛出了一个“无效标识符”异常 有人知道你能不能做到吗?有一个列映射,如果该列在那里,Hibernate将填充它,但如果它不存在,则一切正常,它只是null 非常感谢。最明显的选择是创建不同的映射,并在启动时根据

我有一种情况,表上的列可能存在,也可能不存在。长话短说,我们有一个可选特性,如果实现,它将把一列附加到表中。如果客户端选择不具有该功能,则它们将不具有该列

我试图在我的DAO中为它定义一个属性,希望在列不存在时Hibernate不会崩溃。可能通过将值设置为
null
。但是,Hibernate抛出了一个“无效标识符”异常

有人知道你能不能做到吗?有一个列映射,如果该列在那里,Hibernate将填充它,但如果它不存在,则一切正常,它只是
null


非常感谢。

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

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

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

为什么不始终使用该列,并在另一列中使用一个值来指示该功能的存在?我肯定是在对该树进行优化。这似乎有点奇怪,但这些是我们发的牌。我希望hibernate的一些“灵活性”可以作为一种退路。谢谢你的反馈……我想我正走上强制增加专栏的道路。在其他方面似乎很混乱。再次感谢你的帮助。