Co se týče první hodnoty, která je 1 místo 1001, to je chyba Hibernate HHH-4228 , se stavem Nebude opraveno . Správná první hodnota ve vašem případě je 1001 místo 1000, protože initialValue
inicializuje sloupec, který ukládá poslední vrácená hodnota (a nikoli další hodnota, která má být vrácena).
Použití následujícího v persistence.xml (jak je také navrženo v hlášení o chybě) opraví problém s první hodnotou:
<property name="hibernate.id.new_generator_mappings" value="true"/>
Význam allocationSize
je pravděpodobně špatně pochopena v otázce. Není to krok ke zvýšení. To znamená, kolik hodnot je přiděleno jednomu databázovému dotazu z tabulky. Toto je spíše optimalizace, aby se předešlo dalšímu dotazu pokaždé, když je pro novou entitu potřeba hodnota id.
Vedlejším produktem je, že restart aplikace způsobuje často díry v sekvenci:
- počáteční hodnota =1000, velikost přidělení =100
- Použijte hodnotu 1001 (=> hodnota ve sloupci valueColumn se aktualizuje na 1100).
- vypnutí a spuštění aplikace
- další hodnota bude 1101, nikoli 1002.