Sie müssen bedenken, dass Hibernate eine Persistenzschicht ist und in der Lage sein muss, zu verfolgen, wo sich ein Objekt in der Datenbank befindet. Wenn es also eine Einfügung durchführt, muss es tatsächlich den Auto-Increment-Zähler abfragen, um zu sehen, was die nächste ID sein sollte. Dann fügt es die ID in das Objekt ein und fügt das Objekt in die Datenbank ein. Damit der Ruhezustand beim Einfügen ausgeführt werden kann, muss zuerst eine Auswahl durchgeführt werden (es sei denn, Sie verwenden eine Art von GUID, die von der Anwendung generiert wird). Wenn Sie mySQL Auto-Increment verwenden, verwenden Sie den „Identity“-Generator.
Erklärung der verschiedenen Generatoren:
http://www.roseindia.net/hibernate/hibernateidgeneratorelement.shtml
Ein XML-Code-Snippet für den Ruhezustand:
<id name="id" type="long" unsaved-value="null" >
<column name="uid" not-null="true"/>
<generator class="identity"/>
</id>