私も同じ問題を抱えていました。これは、HibernateのID割り当て戦略に関連しています。 GenerationType.SEQUENCEを選択した場合 、Hibernateはデフォルトで50のブロックにIDを割り当てるHiLo戦略を使用します。したがって、 alllocationSizeを明示的に設定できます このような値:
@Id
@SequenceGenerator(name="pk_sequence",sequenceName="entity_id_seq", allocationSize=1)
@GeneratedValue(strategy=GenerationType.SEQUENCE,generator="pk_sequence")
@Column(name="id", unique=true, nullable=false)
public int getId() {
return this.id;
}
ただし、 alllocationSize =1でHiLo戦略を使用するという意見も聞いています。 良い習慣ではありません。 GenerationType.AUTOの使用を推奨する人もいます 代わりに、データベース管理のシーケンスを処理する必要がある場合
更新: 最終的にallocationSize=1になりましたが、期待どおりに機能しているようです。私のアプリケーションは、とにかくIDのブロックを実際には必要としないようなものなので、YMMVです。