11g - hibernate dialect oracle 12c
Dialecto Hibernate para Oracle Database 11g? (6)
Al menos en el caso de EclipseLink 10g y 11g difieren. Desde 11g no se recomienda utilizar first_rows hint para consultas de paginación.
Consulte "¿Es posible deshabilitar las sugerencias de jpa por cada consulta en particular?" . Tal consulta no debería usarse en 11g.
SELECT * FROM (
SELECT /*+ FIRST_ROWS */ a.*, ROWNUM rnum FROM (
SELECT * FROM TABLES INCLUDING JOINS, ORDERING, etc.) a
WHERE ROWNUM <= 10 )
WHERE rnum > 0;
Pero puede haber otros matices.
¿Hay un dialecto de Hibernate para Oracle Database 11g? ¿O debería usar el org.hibernate.dialect.Oracle10gDialect
que se envía con Hibernate?
Según las bases de datos compatibles , Oracle 11g no es oficialmente compatible. Aunque, creo que no debería haber ningún problema al utilizar org.hibernate.dialect.OracleDialect
.
Si está utilizando WL 10, use lo siguiente:
org.hibernate.dialect.Oracle10gDialect
Tuvimos un problema con el dialecto (obsoleto) org.hibernate.dialect.Oracledialect
y Oracle 11g utilizando el modo hibernate.hbm2ddl.auto = validate
.
Con este dialecto, Hibernate no pudo encontrar las secuencias (debido a la implementación del método getQuerySequencesString()
, que devuelve esta consulta:
"select sequence_name from user_sequences;"
para lo cual la ejecución devuelve un resultado vacío de la base de datos).
El uso del dialecto org.hibernate.dialect.Oracle9iDialect
, o superior, resuelve el problema, debido a una implementación diferente del método 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;"
que devuelve todas las secuencias si se ejecuta, en su lugar.
Usa el dialecto Oracle 10g. También se requiere Hibernate 3.3.2+ para los controladores JDBC recientes (la estructura interna de la clase ha cambiado; los síntomas serán gimoteos sobre una clase abstracta).
El dialecto de Oracle 11g es el mismo que el de Oracle 10g ( org.hibernate.dialect.Oracle10gDialect ). Fuente: http://docs.jboss.org/hibernate/orm/3.6/reference/en-US/html/session-configuration.html#configuration-optional-dialects
use solo org.hibernate.dialect.OracleDialect Eliminar 10g, 9 etc.