Comment créer et lire une séquence dans Hibernate?
-
05-07-2019 - |
Question
Je dois utiliser une séquence pour obtenir une valeur unique. Le code de production utilise postgres mais je voudrais y accéder via Hibernate afin de pouvoir le tester avec HSQLDB.
Comment créer et lire une séquence dans Hibernate?
La solution
Découvrez Dialect
( https://github.com/hibernate/hibernate-orm/blob/5.0/hibernate-core/src/main/java/org/hibernate/dialect/ Dialect.java ).
Il contient du code permettant de déterminer si votre base de données prend en charge les séquences ( supportsSequences ()
) et les méthodes pour les créer et les supprimer ('getCreateSequenceString (String sequenceName)').
Malheureusement, il n’existe aucun moyen propre d’obtenir le dialecte de la session; voir Comment obtenir le dialecte Hibernate pendant l'exécution
[OLD Answer]
Vous pouvez essayer de réutiliser le code de HibernateDialect
mais l’API principale ne l’offre pas. Votre meilleur choix est probablement d’envelopper cela dans une interface, puis d’utiliser différentes implémentations en fonction de votre dialecte.