所以 Hibernate 支持最新版本的 Firebird,这真是太棒了。但...

我这里有一个 Firebird 1.5.2 数据库。我的 Grails 应用程序通过 Hibernate 使用此数据库...到目前为止一切都很好。

我的应用程序发送带有我的数据库未知功能的查询。例如函数 LOWER,自 2.x 版本起 Firebird 就支持该函数。

我的问题:是否可以为我的数据库获取特殊的 Hibernate Dialect?目前我正在使用:方言 =“org.hibernate.dialect.FirebirdDialect”

我如何帮助我的数据库处理这个未知的功能?

有帮助吗?

解决方案

您可以通过子类化 FirebirdDialect 并覆盖所有应返回不同值的函数来创建自己的方言类。

对于需要将 Hibernate 使用的函数重命名为小写的简单情况,您可以简单地在 Hibernate 配置中设置以下内容:

hibernate.query.substitutions toLowercase=mylower

但是,由于 Firebird 1.5 没有 toLowercase 函数,您需要自己实现它 如 Firebird 文档中所述.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top