Использование Grails / Hibernate со старыми базами данных. Как создать недостающие функции? - PullRequest
1 голос
/ 26 июня 2009

Итак, Hibernate Поддерживает последнюю версию Firebird, которая действительно великолепна. Но ...

Я получил здесь базу данных Firebird 1.5.2. Приложение My Grails, использующее эту базу данных через Hibernate ... пока все отлично.

Мои приложения отправляют запросы с функциями, которые неизвестны моей базе данных. Например, функция LOWER, которая теперь поддерживается в Firebird с версии 2.x.

Мой вопрос: Можно ли получить специальный Hibernate диалект для моей базы данных? В настоящее время я использую: dialect = "org.hibernate.dialect.FirebirdDialect"

Как я могу помочь моей Базе данных обрабатывать эти неизвестные функции?

1 Ответ

1 голос
/ 26 июня 2009

Вы можете создать свой собственный класс диалекта, создав подкласс FirebirdDialect и переписав все функции, которые должны возвращать разные значения.

Для простого случая необходимости переименования функции, которую Hibernate использует для нижнего регистра, вы можете просто установить следующее в вашей конфигурации Hibernate:

hibernate.query.substitutiontions toLowercase = mylower

Однако, поскольку Firebird 1.5 не имеет функции toLowercase, вам нужно реализовать ее самостоятельно , как описано в документации Firebird .

...