Ý bạn là, chuỗi có bao giờ trả về giá trị nằm trong phạm vi "khoảng trống" không? Tôi không nghĩ vậy, trừ khi bạn làm rơi / tạo lại nó vì một lý do nào đó. Tôi đoán bạn có thể viết một số loại hàm để tìm khoảng trống PK trong bảng của bạn, sau đó lưu các khoảng chênh lệch đó vào một bảng khác và "cuộn" hàm trình tự của riêng bạn bằng cách sử dụng bảng khoảng cách. Rất xấu. Cố gắng "khôi phục" những khoảng trống này nghe có vẻ như một nỗ lực tuyệt vọng để tránh điều không thể tránh khỏi - kiểu dữ liệu java PK của bạn nên phải phù hợp với kiểu dữ liệu DB. Tôi đã gặp vấn đề tương tự cách đây khá lâu với một ứng dụng VB có khóa lớp được định nghĩa là số nguyên 16 bit và chuỗi vượt quá 32K, phải thay đổi các biến thành Long. Tôi nói, hãy cắn viên đạn, và thực hiện chuyển đổi. Đau một chút bây giờ, sẽ giúp bạn đỡ được rất nhiều cơn đau đang tiếp diễn sau này. Chỉ là ý kiến của tôi.