Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.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 通过缓存大小+lastnumber更新Oracle序列_Java_Spring_Oracle_Hibernate_Jpa - Fatal编程技术网

Java 通过缓存大小+lastnumber更新Oracle序列

Java 通过缓存大小+lastnumber更新Oracle序列,java,spring,oracle,hibernate,jpa,Java,Spring,Oracle,Hibernate,Jpa,当app servertomcat重新启动时,oracle db中的序列将通过缓存大小+lastnumber值进行更新。我的应用程序正在使用Hibernate jpa,这个连接池正在appserver中创建 例如。假设select xxx.nextval from dual给出1,2,3。。。。所以当你被解雇的时候。缓存大小为100,最后一个\u编号为101。 现在,如果重新启动应用服务器ie tomcat,然后选择xxx.nextval将开始给出101,最后一个_编号将变成201。我宁愿说这就

当app servertomcat重新启动时,oracle db中的序列将通过缓存大小+lastnumber值进行更新。我的应用程序正在使用Hibernate jpa,这个连接池正在appserver中创建

例如。假设select xxx.nextval from dual给出1,2,3。。。。所以当你被解雇的时候。缓存大小为100,最后一个\u编号为101。
现在,如果重新启动应用服务器ie tomcat,然后选择xxx.nextval将开始给出101,最后一个_编号将变成201。

我宁愿说这就是发生的情况:假设缓存大小为20。上一次序列获取获取了NEXTVAL,但缓存了20个未使用的值。如果它们有一段时间没有被使用,它们就会从共享池中消失。您不需要重新启动数据库或应用程序服务器;这只是碰巧


在我看来,你不应该为此担心。序列的设计目的不是提供无间隙的数字序列,但其值始终是唯一的,检索速度非常快,可以在多用户环境中使用,…-所以,一切都很好。

我宁愿说这就是发生的情况:假设缓存大小为20。上一次序列获取获取了NEXTVAL,但缓存了20个未使用的值。如果它们有一段时间没有被使用,它们就会从共享池中消失。您不需要重新启动数据库或应用程序服务器;这只是碰巧


在我看来,你不应该为此担心。序列的设计目的不是提供无间隙的数字序列,但其值始终是唯一的,检索速度非常快,可以在多用户环境中使用,…-因此,一切正常。

如果您想减少未使用的序列号,请将缓存大小设置为1。您自己做一些基础研究,您将看到这是Oracle序列的预期行为。这不是一个问题,除非您需要间距较小的连续数字-在这种情况下,序列不是正确的解决方案。如果您想减少未使用的序列号,请将缓存大小设置为1。您自己做一些基础研究,您将看到这是Oracle序列的预期行为。这不是一个问题,除非你需要的是间隔较小的连续数字——在这种情况下,序列不是正确的解决方案。