Tôi đã từng gặp vấn đề tương tự. Nó liên quan đến các chiến lược cấp phát id của Hibernate. Khi bạn chọn GenerationType.SEQUENCE , Hibernate sử dụng chiến lược HiLo phân bổ ID theo các khối 50 theo mặc định. Vì vậy, bạn có thể đặt rõ ràng Kích thước phân bổ giá trị như thế này:
@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;
}
Mặc dù vậy, tôi cũng đã nghe ý kiến rằng việc sử dụng chiến lược HiLo với deliverySize =1 không phải là một thực hành tốt. Một số người khuyên bạn nên sử dụng GenerationType.AUTO thay vào đó khi bạn phải xử lý các trình tự do cơ sở dữ liệu quản lý
Cập nhật: Cuối cùng, tôi đã sử dụng phân bổ kích thước =1 và mọi thứ dường như hoạt động như tôi mong đợi bây giờ. Ứng dụng của tôi đến nỗi tôi không thực sự cần các khối ID, vì vậy YMMV.