51 votes

Hibernate génère des valeurs d'identification négatives lors de l'utilisation d'une séquence

J'ai une classe avec la définition suivante :

 @Id
@SequenceGenerator(name = "SEQ_ACE_WORKERS_QUEUE_STATS_ID", sequenceName = "SEQ_ACE_WORKERS_QUEUE_STATS_ID", allocationSize = 500)
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SEQ_ACE_WORKERS_QUEUE_STATS_ID")
@Column(name = "ID")
private long Id;

Lorsque nous l'avons exécuté sur Jboss 4.2.3, cela a bien fonctionné et a généré les identifiants appropriés (à partir de 1000+)

Maintenant, nous sommes passés à jboss 7.1.1 et il génère des identifiants négatifs ! (à partir de -498 et en montant)

Une idée de pourquoi cela pourrait arriver?

27voto

falsarella Points 2674

La définition de hibernate.id.new_generator_mappings sur false dans mon persistence.xml n'était que la première partie de la solution à mon problème :

Pour résoudre complètement le problème, j'ai ajouté le allocationSize à 1 dans le @SequenceGenerator (que j'oubliais).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X