Hibernate generates entity identities in an inconsistent order in case `allocationSize = 1` property is not set for `@SequenceGenerator`. As per logs, identities are generated in following sequence 1, 2, -46, -45, -44 and so on.
Same behaviour is reproducible when `@SequenceGenerator` annotation is altogether missing.
However, as noticed, this issue is visible when schema is generated by manual script and not by hibernate itself. [^create.sql] [^drop.sql]
*What this essentially means is that application will fail couple of times to insert rows, when hibernate will generate 1 and 2 as primary key.*
{noformat} 2018-09-12 20:06:05.236 [main] INFO in.workingtheory.hibernate.SequenceGeneratorTest : Generated Id : 1 2018-09-12 20:06:05.237 [main] INFO in.workingtheory.hibernate.SequenceGeneratorTest : Generated Id : 2 2018-09-12 20:06:05.237 [main] INFO in.workingtheory.hibernate.SequenceGeneratorTest : Generated Id : -46 2018-09-12 20:06:05.238 [main] INFO in.workingtheory.hibernate.SequenceGeneratorTest : Generated Id : -45 2018-09-12 20:06:05.238 [main] INFO in.workingtheory.hibernate.SequenceGeneratorTest : Generated Id : -44 {noformat}
PF attached [^hibernate-issues.zip] sample project to reproduce the issue (Database properties in persistence.xml needs to be changed for target environment).
Also see generated log [^hibernate.log]. |
|