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