Sättet Hibernate tolkar AUTO-genereringstypen har ändrats från och med Hibernate version 5.0.
När du använder Hibernate v 4.0 och Generation Type som AUTO
, specifikt för MySql, skulle Hibernate välja IDENTITY
strategi (och använd därför AUTO_INCREMENT
funktion) för att generera ID:n för tabellen i fråga.
Från och med version 5.0 när Generation Type är vald som AUTO, använder Hibernate SequenceStyleGenerator
oavsett databasen. I fall av MySql emulerar Hibernate en sekvens med hjälp av en tabell och det är därför du ser tabellen hibernate_sequence. MySql stöder inte standardsekvenstypen inbyggt.
Referenser
- http:// docs.jboss.org/hibernate/orm/5.0/userguide/html_single/Hibernate_User_Guide.html#identifiers-generators-auto
- https://www.thoughts-on-java.org/5-things-you-need-to-know-when-using-hibernate-with-mysql/