Всі генератори реалізують інтерфейс org.hibernate.id.IdentifierGenerator. Це дуже простий інтерфейс. Деякі програми можуть вибрати власні спеціалізовані реалізації, однак, Hibernate пропонує ряд вбудованих реалізацій. Короткі назви вбудованих генераторів такі:
приріст
генерує ідентифікатори типу long, short або int, які є унікальними лише тоді, коли жоден інший процес не вставляє дані в ту саму таблицю. Не використовувати в кластері.
особистість
підтримує стовпці ідентичності в DB2, MySQL, MS SQL Server, Sybase та HypersonicSQL. Повертається ідентифікатор типу довгий, короткий або int.
послідовність
використовує послідовність у DB2, PostgreSQL, Oracle, SAP DB, McKoi або генератор в Interbase. Повертається ідентифікатор типу довгий, короткий або int
хіло
використовує алгоритм hi / lo для ефективного генерування ідентифікаторів типу long, short або int, задавши таблицю та стовпець (за замовчуванням hibernate_unique_key та next_hi відповідно) як джерело значень hi. Алгоритм hi / lo генерує ідентифікатори, унікальні лише для певної бази даних.
seqhilo
використовує алгоритм hi / lo для ефективного генерування ідентифікаторів типу long, short або int із заданою послідовністю баз даних.
uuid
використовує 128-бітний алгоритм UUID для генерування ідентифікаторів рядка типу, які є унікальними в мережі (використовується IP-адреса). UUID кодується у вигляді рядка довжиною 32 шістнадцяткових цифр.
орієнтир
використовує базу даних, що генерується на базі даних GUID, на MS SQL Server та MySQL.
рідний
вибирає ідентичність, послідовність або hilo залежно від можливостей базової бази даних.
призначений
дозволяє додатку призначити ідентифікатор об'єкту до виклику save (). Це стратегія за замовчуванням, якщо жоден елемент не вказаний.
виберіть
отримує первинний ключ, призначений тригером бази даних, шляхом вибору рядка за допомогою якогось унікального ключа та отримання значення первинного ключа.
іноземні
використовує ідентифікатор іншого асоційованого об’єкта. Зазвичай він використовується в поєднанні з асоціацією первинного ключа.
послідовність-ідентичність
спеціалізована стратегія генерації послідовностей, яка використовує послідовність бази даних для фактичного генерування значення, але поєднує це з JDBC3 getGeneratedKeys для повернення згенерованого значення ідентифікатора як частини виконання оператора вставки. Ця стратегія підтримується лише на драйверах Oracle 10g, орієнтованих на JDK 1.4. Коментарі до цих операторів вставки вимкнено через помилку в драйверах Oracle.
Якщо ви будуєте просту програму з не надто одночасними користувачами, ви можете піти на приріст, особистість, hilo тощо. Це прості налаштування та не потрібно багато кодування всередині db.