Как использовать в Hibernate пользовательские функции готово является SQL (и до сих пор имеют нумерацию страниц) - PullRequest
0 голосов
/ 14 апреля 2011

Мне нужно выполнить запрос, который использует функцию, которую я создал в базе данных Oracle SQL (10g).

  • Я видел, что Hibernate поддерживает некоторые агрегатные функции (avg, sum, min, max и некоторые формы подсчета), но я хочу свою собственную функцию, чтобы она не работала.

  • Я также видел, что я могу использовать объект SQLQuery для прямого внедрения SQL.Но здесь я теряю нумерацию страниц и мне это действительно нужно.

    Кто-нибудь знает, как это сделать?Заранее спасибо!

1 Ответ

0 голосов
/ 14 апреля 2011

Для запросов HQL вам необходимо создать свой собственный диалект на основе используемого вами диалекта Oracle (Oracle10gDialect) и добавить свою функцию к этому диалекту.

Для запросов Criteria вы можете определить собственную реализацию Criterion и использовать ее в своем запросе. Этот критерий отвечает за генерацию выражения SQL. Посмотрите источники Hibernate, чтобы найти пример существующей реализации критерия, аналогичной той, которую вы хотите создать.

...