Mysql
 sql >> Database >  >> RDS >> Mysql

Problemi di ibernazione con Auto Increment ID MYSQL 5

Devi ricordare che Hibernate è un livello di persistenza e deve essere in grado di tenere traccia di dove si trova un oggetto nel database. Quindi, quando esegue un inserimento, in realtà dovrà interrogare il contatore di incremento automatico per vedere quale dovrebbe essere l'ID successivo. Quindi inserisce l'ID nell'oggetto e inserisce l'oggetto nel database. Quindi, affinché l'ibernazione esegua l'inserimento, è necessario eseguire prima una selezione (a meno che tu non stia utilizzando una sorta di GUID generato dall'applicazione). Quando si utilizza l'incremento automatico di MySQL, utilizzare il generatore di "identità".

Spiegazione dei vari generatori:

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

Uno snippet di codice XML ibernato:

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