Usando Grails/Hibernate com bancos de dados antigos. Como criar funções ausentes?

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

  •  20-08-2019
  •  | 
  •  

Pergunta

Portanto, o Hibernate suporta a versão mais recente do Firebird, o que é realmente ótimo. Mas...

Eu cheguei aqui um banco de dados Firebird 1.5.2. Meu aplicativo Grails usando esse banco de dados via Hibernate ... até agora tudo ótimo.

Meus aplicativos enviam consultas com funções que não são conhecidas pelo meu banco de dados. Por exemplo, a função mais baixa, que agora é suportada no Firebird desde 2.x.

Minha pergunta: é possível obter um dialeto de hibernação especial para o meu banco de dados? Atualmente estou usando: dialect = "org.hibernate.dialect.firebirddialect"

Como posso ajudar meu banco de dados a lidar com essas funções desconhecidas?

Foi útil?

Solução

Você pode criar sua própria classe de dialeto subclassificando o FirebirdDialect e substituindo todas as funções que devem retornar valores diferentes.

Para o simples caso de precisar renomear a função que o Hibernate está usando para minúsculas, você pode simplesmente definir o seguinte em sua configuração de hibernação:

hibernate.query.substitutions tolowerCase = mylower

No entanto, como o Firebird 1.5 não tem tipo de função de toler, você precisaria implementá -la conforme descrito na documentação do Firebird.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top