Grailsの使用/古いデータベースを休止。不足している関数を作成するには?
質問
だから、Hibernateは本当に素晴らしいである、Firebirdの最新バージョンをサポートします。 しかし...
私はここでのFirebird 1.5.2のデータベースを得ました。休止を経て、このデータベースを使用して私のGrailsのアプリの...これまでのところ、すべての偉大ます。
私のアプリは、私のデータベースには知られていない機能を持つクエリを送信します。今2.xのため、火の鳥でサポートされる関数LOWER、例えばます。
私の質問: それは私のデータベースのために特別にHibernate方言を取得することはできますか? 現在、私は使用しています: 方言= "org.hibernate.dialect.FirebirdDialect"
どのように私はこの未知の関数を扱う私のデータベースを支援することができますか?
解決
あなたはFirebirdDialectをサブクラス化し、異なる値を返す必要がありますすべての機能を上書きして、独自の方言クラスを作成することができます。
Hibernateは下部ケースのために使用される関数の名前を変更する必要の簡単なケースでは、単にあなたのHibernate設定で次のように設定することができます:
hibernate.query.substitutions toLowerCaseメソッド= mylower
ただし、1.5 Firebirdのは、toLowerCaseメソッド機能のないようなものを持っていないとして、あなたはそれを自分<のhref = "http://firebirdsql.com/refdocs/langrefupd20-udf-lower.html" のrel = "nofollowをnoreferrerを実装する必要があります「> Firebirdのドキュメントので説明したようにます。