Du skal huske, at Hibernate er et persistenslag og skal kunne holde styr på, hvor et objekt er i databasen. Så når den laver en indsættelse, bliver den faktisk nødt til at forespørge på tælleren for automatisk stigning for at se, hvad det næste ID skal være. Den indsætter derefter ID'et i objektet og indsætter objektet i databasen. Så for at dvale kan udføres i indsættelse, skal den bruge et valg først (medmindre du bruger en slags GUID genereret af applikationen). Når du bruger mySQL auto-increment, skal du bruge "identitets"-generatoren.
Forklaring af de forskellige generatorer:
http://www.roseindia.net/hibernate/hibernateidgeneratorelement.shtml
Et XML-kodestykke i dvale:
<id name="id" type="long" unsaved-value="null" >
<column name="uid" not-null="true"/>
<generator class="identity"/>
</id>