我在PostgreSQL数据库中注意到hibernate_sequence的一些有趣内容。到目前为止,序列(我的数据库中的所有表使用的序列)已经递增1.然而,情况已经不是这样了。
目前,hibernate_sequence显示的值为43270.如果我SELECT nextval('hibernate_sequence');
,它会正确报告43271
。
但是,当我将数据插入到表格中时,序列ID现在是1872053
!
对于我的生活,我无法弄清楚为什么,但它影响了我运行的一些数据库脚本,以便在不同环境之间每晚传输数据。
我希望它与以下文章没有任何关系,该文章声明声明@GeneratedValue(strategy=GenerationType.SEQUENCE)
“使用HiLo策略,默认情况下以50块为单位分配ID。”
Hibernate use of PostgreSQL sequence does not affect sequence table
如果是这种情况,序列ID会有如此大的跳跃吗?从43271
到1872053
?
这几乎就像是与hibernate_sequence“断开连接”。当我插入第二个事件时,ID为1872053,但hibernate_sequence值不再更改(它仍将保持在43421)。
还有其他可能的解释吗?
谢谢!
代码示例:
@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE)
private Integer id;