Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Apakah elemen initialValue dari @TableGenerator tidak didukung di Hibernate JPA?

Apa yang datang ke nilai pertama adalah 1 bukannya 1001 yaitu Hibernate bug HHH-4228 , dengan status Tidak akan diperbaiki . Nilai pertama yang benar dalam kasus Anda adalah 1001 bukannya 1000, karena initialValue menginisialisasi kolom yang menyimpan terakhir nilai yang dikembalikan (dan bukan nilai berikutnya yang akan dikembalikan).

Menggunakan mengikuti di ketekunan.xml (seperti yang juga disarankan dalam laporan bug) akan memperbaiki masalah dengan nilai pertama:

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

Arti allocationSize kemungkinan disalahpahami dalam pertanyaan. Itu bukan langkah untuk meningkat. Ini berarti berapa banyak nilai yang dialokasikan dengan satu kueri database dari tabel. Ini lebih merupakan pengoptimalan untuk menghindari kueri tambahan setiap kali nilai id diperlukan untuk entitas baru.

Produk sampingannya adalah restart aplikasi sering menyebabkan lubang pada urutan:

  1. initialValue =1000,allocationSize =100
  2. Gunakan nilai 1001 (=> nilai dalam valueColumn diperbarui ke 1100).
  3. matikan dan mulai aplikasi
  4. nilai berikutnya adalah 1101, bukan 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. Mengapa Eclipse mengusulkan Objek sebagai tipe pemetaan default untuk tipe data Teks?

  2. MySQL:Pilih baris dengan lebih dari satu kemunculan

  3. mysql_real_escape_string tidak terdefinisi

  4. MySQL memilih kata-kata dalam tanda kutip dalam kolom teks campur aduk

  5. Pembaruan Pemicu MySQL dengan pilih dari tabel lain