La façon dont Hibernate interprète le type de génération AUTO a changé à partir de la version 5.0 d'Hibernate.
Lors de l'utilisation d'Hibernate v 4.0 et du type de génération comme AUTO
, spécifiquement pour MySql, Hibernate choisirait le IDENTITY
stratégie (et donc utiliser le AUTO_INCREMENT
fonctionnalité) pour générer des identifiants pour la table en question.
À partir de la version 5.0 lorsque le type de génération est sélectionné sur AUTO, Hibernate utilise SequenceStyleGenerator
quelle que soit la base de données. Dans le cas de MySql, Hibernate émule une séquence à l'aide d'une table et c'est pourquoi vous voyez la table hibernate_sequence. MySql ne prend pas en charge le type de séquence standard de manière native.
Références
- http:// docs.jboss.org/hibernate/orm/5.0/userguide/html_single/Hibernate_User_Guide.html#identifiers-generators-auto
- https://www.thinkts-on-java.org/5-things-you-need-to-know-when-using-hibernate-with-mysql/