Sposób, w jaki Hibernate interpretuje typ generowania AUTO zmienił się począwszy od wersji Hibernate 5.0.
Podczas używania Hibernate v 4.0 i Generation Type jako AUTO
, specjalnie dla MySql, Hibernate wybrałby IDENTITY
strategii (i dlatego użyj AUTO_INCREMENT
funkcja) do generowania identyfikatorów dla danej tabeli.
Począwszy od wersji 5.0, gdy Typ generacji jest wybrany jako AUTO, Hibernate używa SequenceStyleGenerator
niezależnie od bazy danych. W przypadku MySql Hibernate emuluje sekwencję przy użyciu tabeli i dlatego widzisz tabelę hibernate_sequence. MySql nie obsługuje natywnie standardowego typu sekwencji.
Referencje
- http:// docs.jboss.org/hibernate/orm/5.0/userguide/html_single/Hibernate_User_Guide.html#identifiers-generators-auto
- https://www.myśli-na-java.org/5-rzeczy-musisz-wiedzieć-kiedy-używasz-hibernacji-z-mysql/