Le moyen le plus portable consiste à utiliser TableGenerator . Il est portable car aucune construction spécifique au fournisseur de base de données n'est utilisée. La dernière valeur générée est stockée dans la table de la base de données, et la valeur est récupérée et incrémentée via des requêtes SQL.
L'utilisation est également couverte dans Hibernate documentation.