Java 如何通过遗留映射在Hibernate 5中指定基于序列的生成值
我有一个问题,类似于,但在一个稍微不同的方式,使所有的差异 我的问题是,我正在将项目组合从Java8/Hibernate4.x堆栈迁移到Java11/Hibernate5.4堆栈 在第二种情况下,当应用程序尝试保存对象时,我会出现此错误: org.postgresql.util.PSQLException:错误:关系“hibernate_sequence”不存在 我上面提到的另一个问题的答案提供了一些见解,但我仍然不理解为什么会出现这种错误:我们所有的实体都在使用各自的序列,并且序列在相应的hbm.xml中明确指定。下面是一个这样的映射文件:Java 如何通过遗留映射在Hibernate 5中指定基于序列的生成值,java,hibernate,hibernate-mapping,Java,Hibernate,Hibernate Mapping,我有一个问题,类似于,但在一个稍微不同的方式,使所有的差异 我的问题是,我正在将项目组合从Java8/Hibernate4.x堆栈迁移到Java11/Hibernate5.4堆栈 在第二种情况下,当应用程序尝试保存对象时,我会出现此错误: org.postgresql.util.PSQLException:错误:关系“hibernate_sequence”不存在 我上面提到的另一个问题的答案提供了一些见解,但我仍然不理解为什么会出现这种错误:我们所有的实体都在使用各自的序列,并且序列在相应的hb
系统标识
…
看起来序列的规范被忽略了。我查阅了一些关于遗留Hibernate XML映射的文档,但是我找不到任何与Hibernate 5相关的内容,据报道Hibernate 5是一种XML
一个解决方案可能是完全迁移到注释,但是这个公文包包含十几个应用程序,这些应用程序有几十个表,总列数(在一个应用程序中)超过1200个。这项任务根本不切实际,尤其是因为一些应用程序被从头重写为微服务
我的问题是,我所使用的序列生成标识符的规范是否仍然受支持?我必须深入研究Hibernate的源代码,以找到一个答案:parameter
sequence
已重命名为sequence\u name
<param name="sequence">system_id_seq</param>
system\u id\u seq
现在一定是
<param name="sequence_name">system_id_seq</param>
system\u id\u seq
这就需要更新所有hbm.xml文件,我在Eclipse中使用了查找和替换