PostgreSQL データベースの hibernate_sequence で興味深いことに気付きました。これまで、シーケンス (データベース内のすべてのテーブルで使用されている) は 1 ずつ増加していました。しかし、それはもう当てはまりません。
SELECT nextval('hibernate_sequence');
現在、hibernate_sequence は43270の値を示しています43271
。
ただし、テーブルにデータを挿入すると、シーケンス ID は1872053
!
私の人生では、理由を理解することはできませんが、異なる環境間で夜間にデータを転送するために実行しているいくつかのデータベース スクリプトに影響を与えています。
@GeneratedValue(strategy=GenerationType.SEQUENCE)
「デフォルトで ID を 50 のブロックに割り当てる HiLo 戦略を使用する」
と宣言している次の記事とは何の関係もないことを願っています。PostgreSQL シーケンスの Hibernate 使用はシーケンス テーブルに影響しません
その場合、シーケンス ID に大きなジャンプが発生するでしょうか? から? 43271
_1872053
hibernate_sequence との「切断」があるかのようです。2 番目のイベントを INSERT すると、ID は 1872053 ですが、hibernate_sequence の値は変更されなくなりました (43421 のままです)。
他に考えられる説明はありますか?
ありがとう!
コード例:
@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE)
private Integer id;