Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Phần tử của initialValue của @TableGenerator không được hỗ trợ trong Hibernate JPA?

Điều nói đến giá trị đầu tiên là 1 thay vì 1001, đó là lỗi Hibernate HHH-4228 , với trạng thái Sẽ không khắc phục được . Giá trị đầu tiên đúng trong trường hợp của bạn là 1001 thay vì 1000, vì initialValue khởi tạo cột lưu trữ cuối cùng giá trị được trả về (và không phải là giá trị tiếp theo được trả về).

Sử dụng sau trong Persence.xml (cũng như được đề xuất trong báo cáo lỗi) sẽ khắc phục sự cố với giá trị đầu tiên:

<property name="hibernate.id.new_generator_mappings" value="true"/>

Ý nghĩa của allocationSize có thể bị hiểu nhầm trong câu hỏi. Nó không phải là bước để tăng dần. Nó có nghĩa là có bao nhiêu giá trị được cấp phát với một truy vấn cơ sở dữ liệu từ bảng. Đây là cách tối ưu hóa hơn để tránh truy vấn bổ sung mỗi khi cần giá trị id cho thực thể mới.

Sản phẩm phụ là việc khởi động lại ứng dụng thường gây ra các lỗ hổng cho trình tự:

  1. ban đầuValue =1000, phân bổSize =100
  2. Sử dụng giá trị 1001 (=> giá trị trong valueColumn được cập nhật thành 1100).
  3. tắt và khởi động ứng dụng
  4. giá trị tiếp theo sẽ là 1101, không phải 1002.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Truy vấn MYSQL giữa hai dấu thời gian

  2. Khi sử dụng NetBeans để gỡ lỗi tập lệnh PHP để sửa đổi các bản ghi bảng,'ised_rows 'sẽ thay đổi từ 1 thành -1

  3. Sử dụng Amazon RDS với ứng dụng Android

  4. Kết nối thiết bị Android với máy chủ localhost

  5. Giới thiệu về làm mới các đối tượng trong phiên sqlalchemy