У меня была такая же проблема. Это связано со стратегиями распределения идентификаторов Hibernate. Когда вы выбираете GenerationType.SEQUENCE , Hibernate использует стратегию HiLo, которая по умолчанию распределяет идентификаторы в блоках по 50. Таким образом, вы можете явно установить allocSize значение следующим образом:
@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;
}
Хотя я также слышал мнения, что использование стратегии HiLo с allocSize = 1 не является хорошей практикой. Некоторые люди рекомендуют использовать GenerationType.AUTO вместо того, чтобы иметь дело с последовательностями, управляемыми базой данных
Обновление: Я все-таки остановился на allocSize = 1, и теперь все работает так, как я ожидаю. Мое приложение таково, что мне все равно не нужны блоки идентификаторов, поэтому YMMV .