Semua generator mengimplementasikan antarmuka org.hibernate.id.IdentifierGenerator. Ini adalah antarmuka yang sangat sederhana. Beberapa aplikasi dapat memilih untuk menyediakan implementasi khusus mereka sendiri, namun Hibernate menyediakan berbagai implementasi bawaan. Nama pintasan untuk generator built-in adalah sebagai berikut:
kenaikan
menghasilkan pengenal tipe panjang, pendek atau int yang unik hanya jika tidak ada proses lain yang memasukkan data ke dalam tabel yang sama. Jangan gunakan di cluster.
identitas
mendukung kolom identitas di DB2, MySQL, MS SQL Server, Sybase dan HypersonicSQL. Pengenal yang dikembalikan berjenis long, short, atau int.
urutan
menggunakan urutan di DB2, PostgreSQL, Oracle, SAP DB, McKoi atau generator di Interbase. Pengenal yang dikembalikan berjenis long, short, atau int
hilo
menggunakan algoritma hi / lo untuk secara efisien menghasilkan pengenal tipe long, short atau int, dengan tabel dan kolom (masing-masing secara default hibernate_unique_key dan next_hi) sebagai sumber nilai hi. Algoritma hi / lo menghasilkan pengenal yang unik hanya untuk database tertentu.
seqhilo.dll
menggunakan algoritma hi / lo untuk secara efisien menghasilkan pengenal tipe panjang, pendek atau int, diberi urutan database bernama.
uuid
menggunakan algoritma UUID 128-bit untuk menghasilkan pengenal tipe string yang unik di dalam jaringan (alamat IP digunakan). UUID dikodekan sebagai string sepanjang 32 digit heksadesimal.
guid
menggunakan string GUID yang dihasilkan database di MS SQL Server dan MySQL.
asli
memilih identitas, urutan atau hilo tergantung pada kemampuan database yang mendasarinya.
ditugaskan
memungkinkan aplikasi menetapkan pengenal ke objek sebelum save () dipanggil. Ini adalah strategi default jika tidak ada elemen yang ditentukan.
Pilih
mengambil kunci utama, yang ditetapkan oleh pemicu database, dengan memilih baris dengan beberapa kunci unik dan mengambil nilai kunci utama.
asing
menggunakan pengenal dari objek terkait lainnya. Biasanya digunakan bersama dengan asosiasi kunci primer.
urutan-identitas
strategi pembuatan urutan khusus yang menggunakan urutan database untuk pembuatan nilai aktual, tetapi menggabungkan ini dengan JDBC3 getGeneratedKeys untuk mengembalikan nilai pengenal yang dihasilkan sebagai bagian dari eksekusi pernyataan penyisipan. Strategi ini hanya didukung pada driver Oracle 10g yang ditargetkan untuk JDK 1.4. Komentar pada pernyataan sisipan ini dinonaktifkan karena bug di driver Oracle.
Jika Anda membangun aplikasi sederhana dengan tidak banyak pengguna bersamaan, Anda dapat menggunakan increment, identity, hilo, dll. Ini mudah dikonfigurasi dan tidak memerlukan banyak coding di dalam db.