Tôi đã định cấu hình ngủ đông để sử dụng trình tự oracle. Trình tự được tạo với bộ nhớ cache = 20, số gia tăng = 1.Hibernate với trình tự Oracle không sử dụng nó
Tất cả đều hoạt động tốt, các thực thể bền vững hibernate. Giá trị id lạ: 50,51 .... 76,201,202 ... 209,1008,1009,5129,5130 ....
Nếu tôi yêu cầu giá trị chuỗi (chọn hibernate_sequence.nextval từ kép), tôi nhận được giá trị như 2,3,4 ....
Nếu tôi bật gỡ lỗi sql hibernate, có thời gian gọi "chọn hibernate_sequence.nextval từ kép" nhưng số được gán bởi hibernate thành ID không chuyển tiếp theo trình tự !
@Id
@Column(name = "ID", insertable = false, updatable = false)
@SequenceGenerator(name = "SequenceIdGenerator", sequenceName = "HIBERNATE_SEQUENCE")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SequenceIdGenerator")
private Long id;
Bạn không phải tăng thêm 50 lần mỗi lần. Đó chỉ là mặc định. Sử dụng @SequenceGenerator (tên = "SEQ_ID", sequenceName = "SEQ_ID", allocSize = 1) Để tăng thêm chỉ một. allocSize là khóa. – dseibert
Có cách nào để không sử dụng điều này? Vì nó gây ra một vấn đề lớn đối với tôi, có các trình kích hoạt khác sử dụng cùng trình tự này cho bảng này. Sau đó, họ có thể nhấn số này trong tương lai, phải không? –
Xem nhận xét ngay phía trên của bạn. Sử dụng allocSize. –