sql >> Database >  >> RDS >> Mysql

Wordt het element initialValue van @TableGenerator niet ondersteund in Hibernate JPA?

De eerste waarde is 1 in plaats van 1001, dat is Hibernate-bug HHH-4228 , met status Kan niet worden opgelost . De juiste eerste waarde in uw geval is 1001 in plaats van 1000, omdat initialValue initialiseert kolom waarin laatste . wordt opgeslagen geretourneerde waarde (en niet de volgende waarde die moet worden geretourneerd).

Het gebruik van het volgende in persistence.xml (zoals ook gesuggereerd in het bugrapport) zal het probleem met de eerste waarde oplossen:

<property name="hibernate.id.new_generator_mappings" value="true"/>

Betekenis van allocationSize wordt in kwestie waarschijnlijk verkeerd begrepen. Het is geen stap om te verhogen. Het betekent hoeveel waarden worden toegewezen met één databasequery uit de tabel. Dit is eerder optimalisatie om elke keer dat er een id-waarde nodig is voor een nieuwe entiteit, extra zoekopdrachten te voorkomen.

Bijproduct is dat het opnieuw opstarten van de applicatie vaak gaten in de reeks veroorzaakt:

  1. initialValue =1000,allocationSize =100
  2. Gebruik waarde 1001 (=> waarde in waardekolom is bijgewerkt naar 1100).
  3. applicatie afsluiten en starten
  4. volgende waarde is 1101, niet 1002.



  1. SQL Server retourneert fout Aanmelden mislukt voor gebruiker 'NT AUTHORITY\ANONYMOUS LOGON'. in Windows-toepassing

  2. Reset volgorde in orakel 11g

  3. Impliceert een Postgres UNIQUE-beperking een index?

  4. Een opgeslagen procedure aanroepen binnen een opgeslagen procedure