我想在使用like之前将列从表更改为大写并过滤HQL中的关键字是什么?
这是我的查询
SELECT abc
FROM ABC abc
WHERE abc.id = ?
And upper(abc.description) like '%?%'
由于
答案 0 :(得分:36)
HQL支持upper()
和SELECT
子句中EJB 3.0规范定义的WHERE
函数。来自文档:
14.10. Expressions
- ...
- EJB-QL 3.0定义的任何函数或运算符:
substring()
,trim()
,lower()
,upper()
,length()
,locate()
,abs()
,sqrt()
,bit_length()
,mod()
- ...
所以以下内容应该有效:
from DomesticCat cat where upper(cat.name) like 'FRI%'
答案 1 :(得分:0)
我在HQL中编写示例查询:
session.createQuery(from Certificate where lower(assignedTo)=:userName)
.setString("userName",username);
假设:名为Certificate
的表格中存在字段assignedTo
。
session
是Hibernate Session。