Jak wspomniałem w mojej trzeciej aktualizacji, JPA „pobierało 50 identyfikatorów” z sekwencji na początku i przeliczało je w pamięci pod kątem wydajności.
To zachowanie jest określone przez javax.persistence.SequenceGenerator.allocationSize
która domyślnie wynosi 50.
To wcale nie jest dla mnie intuicyjne, lub inne , ponieważ moja sekwencja bazy danych Oracle ma definiować to zachowanie, a 50 nie jest tam standardową wartością domyślną.
Szybkim i brudnym rozwiązaniem było określenie allocationSize=1
:
@SequenceGenerator(name = "generator", sequenceName = "MY_SEQ",
allocationSize = 1)
Teraz sekwencja Oracle jest zwiększana dla każdego wstawienia.