Tous les générateurs implémentent l'interface org.hibernate.id.IdentifierGenerator. C'est une interface très simple. Certaines applications peuvent choisir de fournir leurs propres implémentations spécialisées, cependant, Hibernate fournit une gamme d'implémentations intégrées. Les noms de raccourcis pour les générateurs intégrés sont les suivants:
incrément
génère des identifiants de type long, short ou int qui sont uniques uniquement lorsqu'aucun autre processus n'insère de données dans la même table. Ne pas utiliser dans un cluster.
identité
prend en charge les colonnes d'identité dans DB2, MySQL, MS SQL Server, Sybase et HypersonicSQL. L'identifiant renvoyé est de type long, short ou int.
séquence
utilise une séquence dans DB2, PostgreSQL, Oracle, SAP DB, McKoi ou un générateur dans Interbase. L'identifiant retourné est de type long, short ou int
hilo
utilise un algorithme hi / lo pour générer efficacement des identifiants de type long, short ou int, à partir d'une table et d'une colonne (par défaut hibernate_unique_key et next_hi respectivement) comme source de valeurs hi. L'algorithme hi / lo génère des identificateurs uniques uniquement pour une base de données particulière.
seqhilo
utilise un algorithme hi / lo pour générer efficacement des identificateurs de type long, short ou int, étant donné une séquence de base de données nommée.
uuid
utilise un algorithme UUID 128 bits pour générer des identifiants de type chaîne qui sont uniques au sein d'un réseau (l'adresse IP est utilisée). L'UUID est codé sous la forme d'une chaîne de 32 chiffres hexadécimaux de longueur.
guid
utilise une chaîne GUID générée par la base de données sur MS SQL Server et MySQL.
originaire de
sélectionne l'identité, la séquence ou le hilo en fonction des capacités de la base de données sous-jacente.
attribué
permet à l'application d'affecter un identifiant à l'objet avant l'appel de save (). Il s'agit de la stratégie par défaut si aucun élément n'est spécifié.
sélectionner
récupère une clé primaire, attribuée par un déclencheur de base de données, en sélectionnant la ligne par une clé unique et en récupérant la valeur de la clé primaire.
étranger
utilise l'identifiant d'un autre objet associé. Il est généralement utilisé en conjonction avec une association de clé primaire.
identité de séquence
une stratégie de génération de séquence spécialisée qui utilise une séquence de base de données pour la génération de valeur réelle, mais la combine avec JDBC3 getGeneratedKeys pour renvoyer la valeur d'identificateur générée dans le cadre de l'exécution de l'instruction d'insertion. Cette stratégie n'est prise en charge que sur les pilotes Oracle 10g ciblés pour JDK 1.4. Les commentaires sur ces instructions d'insertion sont désactivés en raison d'un bogue dans les pilotes Oracle.
Si vous construisez une application simple avec peu d'utilisateurs simultanés, vous pouvez opter pour l' incrémentation, l'identité, hilo etc. Ceux-ci sont simples à configurer et n'ont pas besoin de beaucoup de codage dans la base de données.