2010-12-06 43 views

Respuesta

84

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).

Dialecto de Oracle 11g es el mismo que 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

+2

Desafortunadamente no ayuda con "ORA-01754: una tabla puede contener solo una columna de tipo LONG". –

+0

Tengo un problema con la función reservada específica INTERVALO .. por ejemplo, "@Formula (" SYSDATE - INTERVALO '1' HORA * SHOW_LIMIT_HOURS ")". No sé si podría generar algún problema, pero parece ser una buena solución: http: // stackoverflow.com/a/26907699/1488761 –

10

De acuerdo con supported databases, Oracle 11g no es oficialmente compatible. Aunque, creo que no debería tener ningún problema al usar org.hibernate.dialect.OracleDialect.

+14

Mente que 'org.hibernate.dialect.OracleDialect' está en desuso (http://docs.jboss.org/hibernate/ core/3.6/javadocs/org/hibernate/dialect/OracleDialect.html). Deberías usar el dialecto Oracle 10g. – Yonatan

+7

Oracle 11 ahora es compatible – MJB

+8

Como @MJB señaló Oracle 11 es compatible. La parte que falta es: es compatible con org.hibernate.dialect.Oracle10gDialect class [link] (http://docs.jboss.org/hibernate/orm/3.6/reference/en-US/html/session-configuration.html # configuration-optional-dialects) (también se aplica a ananea 4.x) – bmichalik

3

Tuvimos un problema con el dialecto (obsoleto) org.hibernate.dialect.Oracledialect y la base de datos Oracle 11g utilizando el modo hibernate.hbm2ddl.auto = validate.

Con este dialecto Hibernate no pudo encontrado las secuencias (debido a que la implementación del método getQuerySequencesString(), que devuelve esta consulta:

"select sequence_name from user_sequences;"

para los que la ejecución devuelve un resultado vacío de base de datos).

Usando el dialecto org.hibernate.dialect.Oracle9iDialect, o mayor, resuelve el problema, debido a una implementación diferente de getQuerySequencesString() método:

"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 lugar.

0

Si está utilizando WL 10 usa la siguiente:

org.hibernate.dialect.Oracle10gDialect

1

Al menos en el caso de EclipseLink 10g y 11g diferir. Desde 11g no se recomienda utilizar first_rows hint para consultas de paginación.

Ver "Is it possible to disable jpa hints per particular query". Dicha consulta no debe 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.

0

uso exclusivo org.hibernate.dialect.OracleDialect Quitar 10g, 9, etc.

+0

Esto no proporciona una respuesta a la pregunta. Una vez que tenga suficiente [reputación] (https://stackoverflow.com/help/whats-reputation) podrá [comentar cualquier publicación] (https://stackoverflow.com/help/privileges/comment); en su lugar, [brinde respuestas que no requieran aclaración del autor de la pregunta] (https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can- i-do-instead). - [De la crítica] (/ review/low-quality-posts/18711257) – diceler

+0

Esto también fue sugerido por "darioo", pero lea el comentario de @Yonatan en su respuesta. –

Cuestiones relacionadas