Uso de Grails / Hibernate con bases de datos antiguas. ¿Cómo crear funciones faltantes?

StackOverflow https://stackoverflow.com/questions/1048285

  •  20-08-2019
  •  | 
  •  

Pregunta

Entonces Hibernate es compatible con la última versión de Firebird, que es realmente genial. Pero ...

Tengo aquí una base de datos Firebird 1.5.2. My Grails App usando esta base de datos a través de Hibernate ... hasta ahora todo genial.

Mis aplicaciones envían consultas con funciones que mi base de datos no conoce. Por ejemplo, la función INFERIOR, que ahora es compatible con Firebird desde 2.x.

Mi pregunta: ¿Es posible obtener un dialecto de hibernación especial para mi base de datos? Actualmente estoy usando: dialect = " org.hibernate.dialect.FirebirdDialect "

¿Cómo puedo ayudar a mi Base de Datos a manejar estas Funciones desconocidas?

¿Fue útil?

Solución

Puede crear su propia clase de dialecto subclasificando FirebirdDialect y sobrescribiendo todas las funciones que deberían devolver valores diferentes.

Para el caso simple de necesitar cambiar el nombre de la función que Hibernate está usando para minúsculas, simplemente puede configurar lo siguiente en su configuración de Hibernate:

hibernate.query.substitutions toLowercase = mylower

Sin embargo, como Firebird 1.5 no tiene ningún tipo de función minúscula, necesitará implementarla usted mismo como se describe en la documentación de Firebird .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top