Comme je l'ai mentionné dans ma 3e mise à jour, JPA "récupérait 50 identifiants" de la séquence à l'avance et les comptait en mémoire pour plus d'efficacité.
Ce comportement est spécifié par javax.persistence.SequenceGenerator.allocationSize
qui par défaut est 50.
Ce n'est pas du tout intuitif pour moi, ou autres , car ma séquence de base de données Oracle est censée définir ce comportement et 50 n'y est pas une valeur par défaut standard.
La solution rapide et sale consistait à spécifier allocationSize=1
:
@SequenceGenerator(name = "generator", sequenceName = "MY_SEQ",
allocationSize = 1)
Maintenant, la séquence Oracle est incrémentée pour chaque insertion.