Miałem ten sam problem. Wiąże się to ze strategiami przydzielania id Hibernate. Kiedy wybierzesz GenerationType.SEQUENCE , Hibernate używa strategii HiLo, która domyślnie przydziela identyfikatory w blokach po 50. Możesz więc jawnie ustawić allocationSize wartość tak:
@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;
}
Chociaż słyszałem też opinie, że stosowanie strategii HiLo z allocationSize=1 nie jest dobrą praktyką. Niektórzy polecają użycie GenerationType.AUTO zamiast tego, gdy masz do czynienia z sekwencjami zarządzanymi przez bazę danych
Aktualizacja: Skończyło się na przypisaniuSize=1 i wydaje się, że teraz wszystko działa tak, jak się spodziewam. Moja aplikacja jest taka, że tak naprawdę nie potrzebuję bloków identyfikatorów, więc YMMV.