Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.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
Java 如何通过遗留映射在Hibernate 5中指定基于序列的生成值_Java_Hibernate_Hibernate Mapping - Fatal编程技术网

Java 如何通过遗留映射在Hibernate 5中指定基于序列的生成值

Java 如何通过遗留映射在Hibernate 5中指定基于序列的生成值,java,hibernate,hibernate-mapping,Java,Hibernate,Hibernate Mapping,我有一个问题,类似于,但在一个稍微不同的方式,使所有的差异 我的问题是,我正在将项目组合从Java8/Hibernate4.x堆栈迁移到Java11/Hibernate5.4堆栈 在第二种情况下,当应用程序尝试保存对象时,我会出现此错误: org.postgresql.util.PSQLException:错误:关系“hibernate_sequence”不存在 我上面提到的另一个问题的答案提供了一些见解,但我仍然不理解为什么会出现这种错误:我们所有的实体都在使用各自的序列,并且序列在相应的hb

我有一个问题,类似于,但在一个稍微不同的方式,使所有的差异

我的问题是,我正在将项目组合从Java8/Hibernate4.x堆栈迁移到Java11/Hibernate5.4堆栈

在第二种情况下,当应用程序尝试保存对象时,我会出现此错误:

org.postgresql.util.PSQLException:错误:关系“hibernate_sequence”不存在

我上面提到的另一个问题的答案提供了一些见解,但我仍然不理解为什么会出现这种错误:我们所有的实体都在使用各自的序列,并且序列在相应的hbm.xml中明确指定。下面是一个这样的映射文件:


系统标识
…
看起来序列的规范被忽略了。我查阅了一些关于遗留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中使用了查找和替换