Il modo più portatile consiste nell'usare TableGenerator . È portatile perché non vengono utilizzati costrutti specifici del provider di database. L'ultimo valore generato viene archiviato nella tabella del database e il valore viene recuperato e incrementato tramite query SQL.
L'utilizzo è coperto anche in Hibernate documentazione.