Как изменить на случай столбца на верхний в HQL Hibernate

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

здесь мой запрос

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

Спасибо

Ответы

Ответ 1

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 "Строковые функции"

Ответ 2

Я пишу образец запроса в HQL:

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

Предположения: существует таблица с именем Certificate с полем assignedTo. session - сеанс Hibernate.