O que se trata do primeiro valor sendo 1 em vez de 1001 é o bug do Hibernate HHH-4228 , com status Não será corrigido . O primeiro valor correto no seu caso é 1001 em vez de 1000, porque
initialValue
inicializa a coluna que armazena último valor retornado (e não o próximo valor a ser retornado). Usar o seguinte em persistence.xml (como também sugerido no relatório de bug) corrigirá o problema com o primeiro valor:
<property name="hibernate.id.new_generator_mappings" value="true"/>
Significado de
allocationSize
é provavelmente incompreendido em questão. Não é passo para incrementar. Significa quantos valores são alocados com uma consulta de banco de dados da tabela. Isso é uma otimização para evitar consultas adicionais sempre que o valor de id for necessário para uma nova entidade. O produto secundário é que o reinício da aplicação causa frequentemente furos na sequência:
- initialValue =1000,allocationSize =100
- Use o valor 1001 (=> valor em valueColumn é atualizado para 1100).
- encerrar e iniciar o aplicativo
- o próximo valor será 1101, não 1002.