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

la séquence oracle hibernate produit un grand écart

Je pense que le problème vient du fait que le générateur de séquence n'est pas vraiment un générateur de séquence, mais un générateur de hilo de séquence, avec une taille d'allocation par défaut de 50. comme indiqué par la documentation :http://docs.jboss.org/ hibernate/stable/annotations/reference/en/html_single/#entity-mapping-identifier

Cela signifie que si la valeur de la séquence est 5000, la prochaine valeur générée sera 5000 * 50 =250000. Ajoutez la valeur de cache de la séquence à l'équation, et cela pourrait expliquer votre énorme écart initial.

Vérifiez la valeur de la séquence. Il doit être inférieur au dernier identifiant généré. Attention à ne pas réinitialiser la séquence à cette dernière valeur générée + 1, car les valeurs générées croîtraient de manière exponentielle (nous avons eu ce problème, et avions des identifiants entiers négatifs à cause d'un débordement)