Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Problemas de hibernação com o ID de incremento automático MYSQL 5


Você tem que lembrar que o Hibernate é uma camada de persistência e precisa ser capaz de acompanhar onde um objeto está no banco de dados. Então, quando ele faz uma inserção, ele realmente precisará consultar o contador de incremento automático para ver qual deve ser o próximo ID. Em seguida, ele insere o ID no objeto e insere o objeto no banco de dados. Então, para o hibernate fazer no insert, ele precisa fazer um select primeiro (a menos que você esteja usando algum tipo de GUID gerado pelo aplicativo). Ao usar o incremento automático do mySQL, use o gerador de "identidade".

Explicação dos vários geradores:

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

Um trecho de código XML de hibernação:
 <id name="id" type="long" unsaved-value="null" >
    <column name="uid" not-null="true"/>
    <generator class="identity"/>
 </id>