Как изменить регистр столбца на Upper в HQL Hibernate - PullRequest
15 голосов
/ 15 октября 2010

Я хочу изменить столбец из таблицы в верхний регистр, прежде чем использовать like и фильтровать ключевое слово в HQL?

вот мой запрос

SELECT abc
FROM ABC abc
WHERE abc.id = ?
And upper(abc.description) like '%?%'

Спасибо

Ответы [ 2 ]

37 голосов
/ 15 октября 2010

HQL поддерживает функцию upper(), определенную спецификацией EJB 3.0 в предложениях SELECT и WHERE. Из документации:

14,10. Выражения

  • ...
  • Любая функция или оператор, определенные EJB-QL 3.0: substring(), trim(), lower(), upper(), length(), locate(), abs(), sqrt(), bit_length(), mod()
  • ...

Так должно работать следующее:

from DomesticCat cat where upper(cat.name) like 'FRI%'

Ссылки

  • Справочное руководство по Hibernate Core
  • JPA 1.0 Технические характеристики
    • Раздел 4.6.16.1 «Строковые функции»
0 голосов
/ 17 декабря 2014

Я пишу пример запроса на HQL:

session.createQuery(from Certificate where lower(assignedTo)=:userName)
    .setString("userName",username);

Допущения: существует таблица с именем Certificate с полем assignedTo. session - это Hibernate Session.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...