Existe-t-il un dialecte Hibernate pour Oracle Database 11g? Ou devrais-je utiliser le org.hibernate.dialect.Oracle10gDialect
qui est livré avec Hibernate?
98
Utilisez le dialecte Oracle 10g. Hibernate 3.3.2+ est également requis pour les pilotes JDBC récents (la structure de classe interne a été modifiée - les symptômes vont se plaindre d'une classe abstraite).
Le dialecte d'Oracle 11g est identique à Oracle 10g ( org.hibernate.dialect.Oracle10gDialect ). Source: http://docs.jboss.org/hibernate/orm/3.6/reference/en-US/html/session-configuration.html#configuration-optional-dialects
Selon les bases de données prises en charge , Oracle 11g n'est pas officiellement pris en charge. Cependant, je pense que vous ne devriez pas avoir de problèmes d'utilisation
org.hibernate.dialect.OracleDialect
.la source
org.hibernate.dialect.OracleDialect
c'est obsolète ( docs.jboss.org/hibernate/core/3.6/javadocs/org/hibernate/… ). Vous devez utiliser le dialecte Oracle 10g.Nous avons eu un problème avec le dialecte (obsolète)
org.hibernate.dialect.Oracledialect
et la base de données Oracle 11g utilisant lehibernate.hbm2ddl.auto = validate
mode.Avec ce dialecte, Hibernate n'a pas pu trouver les séquences (car l'implémentation de la
getQuerySequencesString()
méthode, qui renvoie cette requête:"select sequence_name from user_sequences;"
pour lequel 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 lagetQuerySequencesString()
méthode:"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 elles sont exécutées à la place.
la source
Au moins dans le cas d'EclipseLink 10g et 11g diffèrent. Depuis 11g, il n'est pas recommandé d'utiliser l'indicateur first_rows pour les requêtes de pagination.
Voir "Est-il possible de désactiver les conseils jpa par requête particulière" . Une telle requête ne doit pas être utilisée dans 11g.
Mais il peut y avoir d'autres nuances.
la source
Si vous utilisez WL 10, utilisez les éléments suivants:
org.hibernate.dialect.Oracle10gDialect
la source
utilisez uniquement org.hibernate.dialect.OracleDialect Remove 10g, 9 etc.
la source