12c 11g oracle hibernate oracle11g

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.



use solo org.hibernate.dialect.OracleDialect Eliminar 10g, 9 etc.