【发布时间】:2018-04-19 07:28:07
【问题描述】:
当应用服务器(tomcat)重新启动时,oracle db 中的序列将通过缓存大小+lastnumber 值进行更新。我的应用程序正在使用 Hibernate jpa,并且在 appserver 中创建了这个连接池。
示例。假设 select xxx.nextval from dual 给出 1,2 ,3.... 等被解雇。缓存大小为 100,LAST_NUMBER 为 101。 现在如果重新启动应用服务器即tomcat然后选择xxx.nextval将开始给出101,LAST_NUMBER将变为201。
【问题讨论】:
-
如果要减少未使用的序列号,请将缓存大小设置为 1。
-
自己做一些基础研究,您会发现这是 Oracle 序列的预期行为。除非您需要无间隙的连续数字,否则这不是问题 - 在这种情况下,序列不是正确的解决方案。
标签: java spring oracle hibernate jpa