Wszystkie generatory implementują interfejs org.hibernate.id.IdentifierGenerator. To bardzo prosty interfejs. Niektóre aplikacje mogą udostępniać własne wyspecjalizowane implementacje, jednak Hibernate udostępnia szereg wbudowanych implementacji. Nazwy skrótów dla wbudowanych generatorów są następujące:
przyrost
generuje identyfikatory typu long, short lub int, które są unikalne tylko wtedy, gdy żaden inny proces nie wstawia danych do tej samej tabeli. Nie używaj w klastrze.
tożsamość
obsługuje kolumny tożsamości w DB2, MySQL, MS SQL Server, Sybase i HypersonicSQL. Zwrócony identyfikator jest typu long, short lub int.
sekwencja
używa sekwencji w DB2, PostgreSQL, Oracle, SAP DB, McKoi lub generatorze w Interbase. Zwrócony identyfikator jest typu long, short lub int
hilo
używa algorytmu hi / lo do wydajnego generowania identyfikatorów typu long, short lub int, biorąc pod uwagę tabelę i kolumnę (domyślnie odpowiednio hibernate_unique_key i next_hi) jako źródło wartości hi. Algorytm hi / lo generuje identyfikatory, które są unikalne tylko dla określonej bazy danych.
seqhilo
używa algorytmu hi / lo do wydajnego generowania identyfikatorów typu long, short lub int, na podstawie nazwanej sekwencji bazy danych.
uuid
używa 128-bitowego algorytmu UUID do generowania identyfikatorów typu string, które są unikalne w sieci (używany jest adres IP). Identyfikator UUID jest zakodowany jako ciąg o długości 32 cyfr szesnastkowych.
guid
używa ciągu GUID wygenerowanego przez bazę danych na MS SQL Server i MySQL.
ojczysty
wybiera tożsamość, sekwencję lub hilo w zależności od możliwości bazowej bazy danych.
przydzielony
pozwala aplikacji przypisać identyfikator do obiektu przed wywołaniem metody save (). Jest to strategia domyślna, jeśli nie określono żadnego elementu.
Wybierz
pobiera klucz podstawowy przypisany przez wyzwalacz bazy danych, wybierając wiersz za pomocą jakiegoś unikalnego klucza i pobierając wartość klucza podstawowego.
obcy
używa identyfikatora innego powiązanego obiektu. Zwykle jest używany w połączeniu z skojarzeniem klucza podstawowego.
identyczność sekwencji
wyspecjalizowana strategia generowania sekwencji, która wykorzystuje sekwencję bazy danych do rzeczywistego generowania wartości, ale łączy ją z JDBC3 getGeneratedKeys, aby zwrócić wygenerowaną wartość identyfikatora w ramach wykonywania instrukcji insert. Ta strategia jest obsługiwana tylko w sterownikach Oracle 10g przeznaczonych dla JDK 1.4. Komentarze do tych instrukcji wstawiania są wyłączone z powodu błędu w sterownikach Oracle.