Я хочу изменить столбец из таблицы в верхний регистр, прежде чем использовать like и фильтровать ключевое слово в HQL?
вот мой запрос
SELECT abc FROM ABC abc WHERE abc.id = ? And upper(abc.description) like '%?%'
Спасибо
HQL поддерживает функцию upper(), определенную спецификацией EJB 3.0 в предложениях SELECT и WHERE. Из документации:
upper()
SELECT
WHERE
14,10. Выражения ... Любая функция или оператор, определенные EJB-QL 3.0: substring(), trim(), lower(), upper(), length(), locate(), abs(), sqrt(), bit_length(), mod() ...
substring()
trim()
lower()
length()
locate()
abs()
sqrt()
bit_length()
mod()
Так должно работать следующее:
from DomesticCat cat where upper(cat.name) like 'FRI%'
Я пишу пример запроса на HQL:
session.createQuery(from Certificate where lower(assignedTo)=:userName) .setString("userName",username);
Допущения: существует таблица с именем Certificate с полем assignedTo. session - это Hibernate Session.
Certificate
assignedTo
session