Ho avuto lo stesso problema. È correlato alle strategie di allocazione dell'ID di Hibernate. Quando scegli GenerationType.SEQUENCE , Hibernate utilizza la strategia HiLo che alloca gli ID in blocchi di 50 per impostazione predefinita. Quindi puoi impostare esplicitamente allocationSize valore come questo:
@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;
}
Tuttavia, ho anche sentito opinioni sull'utilizzo della strategia HiLo con allocationSize=1 non è una buona pratica. Alcune persone consigliano di utilizzare GenerationType.AUTO invece quando hai a che fare con sequenze gestite da database
Aggiornamento: Ho finito per andare con allocationSize=1 e le cose sembrano funzionare come mi aspetto ora. La mia applicazione è tale che comunque non ho davvero bisogno di blocchi di ID, quindi YMMV.