Utilisation de Grails / Hibernate avec d’anciennes bases de données. Comment créer des fonctions manquantes?

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

  •  20-08-2019
  •  | 
  •  

Question

So Hibernate prend en charge la dernière version de Firebird, qui est vraiment géniale. Mais ...

J'ai ici une base de données Firebird 1.5.2. Mon application Grails utilisant cette base de données via Hibernate ... jusqu'à présent, tout est génial.

Mes applications envoient des requêtes avec des fonctions inconnues de ma base de données. Par exemple, la fonction LOWER, désormais prise en charge par Firebird depuis la version 2.x.

Ma question: Est-il possible d'obtenir un dialecte spécial Hibernate pour ma base de données? Actuellement, j'utilise: dialect = " org.hibernate.dialect.FirebirdDialect "

Comment puis-je aider ma base de données à gérer ces fonctions inconnues?

Était-ce utile?

La solution

Vous pouvez créer votre propre classe de dialecte en sous-classant FirebirdDialect et en écrasant toutes les fonctions devant renvoyer des valeurs différentes.

Pour le simple cas de devoir renommer la fonction utilisée par Hibernate pour les minuscules, vous pouvez simplement définir les paramètres suivants dans votre configuration Hibernate:

hibernate.query.substitutions toLowercase = mylower

Cependant, comme Firebird 1.5 n’a aucun type de fonction toLowercase, vous devez l’implémenter vous-même. "> comme décrit dans la documentation Firebird .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top