Ich hatte das gleiche Problem. Es hängt mit den ID-Zuweisungsstrategien von Hibernate zusammen. Wenn Sie GenerationType.SEQUENCE wählen verwendet Hibernate die HiLo-Strategie, die IDs standardmäßig in 50er-Blöcken zuweist. Sie können also allocationSize explizit festlegen Wert wie folgt:
@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;
}
Allerdings habe ich auch Meinungen gehört, dass die HiLo-Strategie mit allocationSize=1 verwendet wird ist keine gute Praxis. Einige Leute empfehlen die Verwendung von GenerationType.AUTO stattdessen, wenn Sie mit datenbankverwalteten Sequenzen zu tun haben
Aktualisierung: Am Ende ging ich mit "allocationSize=1" und die Dinge scheinen jetzt so zu funktionieren, wie ich es erwarte. Meine Anwendung ist so, dass ich sowieso keine ID-Blöcke brauche, also YMMV.