2009-06-26 6 views
1

So Hibernate Prend en charge la dernière version de Firebird, ce qui est vraiment génial. Mais ...Utilisation de Grails/Hibernate avec les anciennes bases de données. Comment créer des fonctions manquantes?

J'ai ici une base de données Firebird 1.5.2. My Grails App utilisant cette base de données via Hibernate ... jusqu'ici tout va bien. Mes applications envoient des requêtes avec des fonctions inconnues de ma base de données. Par exemple, la fonction LOWER, qui est maintenant supportée dans Firebird depuis 2.x.

Ma question: Est-il possible d'obtenir un dialecte d'hibernation spécial pour ma base de données? Actuellement, je me sers: dialecte = « org.hibernate.dialect.FirebirdDialect »

Comment puis-je aider ma base de données la manipulation de ce fonctions inconnues?

Répondre

1

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

Pour le cas simple d'avoir besoin de renommer la mise en veille prolongée de la fonction est d'utiliser 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 pas de fonction toLowercase, vous devrez l'implémenter vous-même as described in the Firebird documentation.

+0

Votre lien semble être cassé. – bastianneu

+0

thnak vous pour la fixation. Le lien fonctionne maintenant. – bastianneu

Questions connexes