Mysql
 sql >> Base de données >  >> RDS >> Mysql

Problèmes d'hibernation avec Auto Increment ID MYSQL 5

Vous devez vous rappeler que Hibernate est une couche de persistance et doit être capable de garder une trace de l'emplacement d'un objet dans la base de données. Ainsi, lorsqu'il effectue une insertion, il doit en fait interroger le compteur d'auto-incrémentation pour voir quel devrait être le prochain ID. Il insère ensuite l'ID dans l'objet et insère l'objet dans la base de données. Donc, pour que l'hibernation soit effectuée dans l'insertion, elle doit d'abord effectuer une sélection (sauf si vous utilisez une sorte de GUID généré par l'application). Lorsque vous utilisez l'auto-incrémentation mySQL, utilisez le générateur "d'identité".

Explication des différents générateurs :

http://www.roseindia.net/hibernate/hibernateidgeneratorelement.shtml

Un extrait de code XML d'hibernation :

 <id name="id" type="long" unsaved-value="null" >
    <column name="uid" not-null="true"/>
    <generator class="identity"/>
 </id>