Oracle
 sql >> Base de données >  >> RDS >> Oracle

Séquence Hibernate nextVal résolue mais non utilisée (Oracle)

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.