Nous avons eu un problème avec le dialecte (déprécié) org.hibernate.dialect.Oracledialect
et la base de données Oracle 11g en utilisant le mode hibernate.hbm2ddl.auto = validate
.
Avec ce dialecte, Hibernate était incapable de trouver les séquences (en raison de l'implémentation de la méthode getQuerySequencesString()
qui renvoie cette requête:
"select sequence_name from user_sequences;"
pour laquelle l'exécution renvoie un résultat vide de la base de données).
L'utilisation du dialecte org.hibernate.dialect.Oracle9iDialect
, ou supérieur, résout le problème, en raison d'une implémentation différente de la méthode getQuerySequencesString()
:
"select sequence_name from all_sequences union select synonym_name from all_synonyms us, all_sequences asq where asq.sequence_name = us.table_name and asq.sequence_owner = us.table_owner;"
qui renvoie toutes les séquences si elle est exécutée, à la place.