1

そのため、Hibernate は Firebird の最新バージョンをサポートしています。これは非常に優れています。しかし...

Firebird 1.5.2 データベースを入手しました。Hibernate 経由でこのデータベースを使用する私の Grails アプリ...これまでのところ、すべてが素晴らしいです。

マイ アプリは、データベースに認識されていない関数を含むクエリを送信します。たとえば、関数 LOWER は 2.x 以降の Firebird でサポートされています。

私の質問: 私のデータベース用に特別な Hibernate Dialect を取得することは可能ですか? 現在私は使用しています: 方言 = "org.hibernate.dialect.FirebirdDialect"

データベースがこの未知の関数を処理するのをどのように支援できますか?

4

1 に答える 1

1

FirebirdDialectをサブクラス化し、異なる値を返す必要があるすべての関数を上書きすることで、独自の方言クラスを作成できます。

Hibernateが小文字に使用している関数の名前を変更する必要があるという単純なケースでは、Hibernate構成で次のように設定するだけです。

hibernate.query.substitutions toLowercase = mylower

ただし、Firebird 1.5にはtoLowercase関数のようなものがないため、Firebirdのドキュメントで説明されているように自分で実装する必要があります。

于 2009-06-26T10:57:25.470 に答える