Frage

So Hibernate unterstützt die neueste Version von Firebird, das ist wirklich toll. Aber ...

Ich habe hier eine Firebird 1.5.2 Datenbank. Meine Grails App diese Datenbank über Hibernate ... soweit alles super.

Meine Apps senden Abfragen mit Funktionen, die zu meiner Datenbank sind nicht bekannt. Zum Beispiel kann die Funktion LOWER, die nun seit 2.x in Firebird unterstützt wird.

Meine Frage: Ist es möglich, eine spezielle Hibernate Dialect für meine Datenbank zu bekommen? Derzeit bin ich mit: Dialekt = "org.hibernate.dialect.FirebirdDialect"

Wie kann ich meine Datenbank Umgang mit diesen unbekannten Funktionen unterstützen?

War es hilfreich?

Lösung

Sie können Ihren eigenen Dialekt Klasse von Subklassen FirebirdDialect erstellen und alle Funktionen zu überschreiben, die unterschiedliche Werte zurückgeben sollte.

Für den einfachen Fall benötigen, um die Funktion Hibernate umbenennen für Kleinbuchstaben verwendet, können Sie einfach folgende Einstellungen vor in Ihrem Hibernate-Konfiguration:

hibernate.query.substitutions toLowerCase = mylower

Doch wie Firebird 1.5 keinerlei toLowerCase Funktion hat, müssen Sie es selbst implementieren

scroll top