J'utilise Hibernate avec Spring et DB2. J'utilise des séquences pour générer une clé primaire pour les entités. Toutes les entités utilisent la même séquence HIBERNATE_SEQUENCE
, qui est la valeur par défaut d'hibernate.Hibernate et comportement étrange avec des séquences DB2
Le problème est que les valeurs qui aboutissent aux clés primaires sont environ 10 fois plus élevées que celles renvoyées par HIBERNATE_SEQUENCE.
Par exemple cette situation juste après une nouvelle ligne est insérée à TBL:
select max(id) as primary_key, nextval for hibernate_sequence sequence_value from tbl ;
primary_key sequence_value
501483661 50148373
Je dresser la carte clé primaire comme celui-ci, en super classe pour toutes les entités:
@MappedSuperclass
public class AbstractEntity implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
private Integer id;
I'D comme cela, Hibernate utilise les valeurs qu'il récupère à partir de la séquence, et non les valeurs de séquence multipliées par 10. Quelle est la bonne façon de procéder?