【发布时间】:2011-04-25 19:54:14
【问题描述】:
我想在使用like和过滤HQL中的关键字之前将列从表更改为大写?
这是我的查询
SELECT abc
FROM ABC abc
WHERE abc.id = ?
And upper(abc.description) like '%?%'
谢谢
【问题讨论】:
我想在使用like和过滤HQL中的关键字之前将列从表更改为大写?
这是我的查询
SELECT abc
FROM ABC abc
WHERE abc.id = ?
And upper(abc.description) like '%?%'
谢谢
【问题讨论】:
我正在用 HQL 编写一个示例查询:
session.createQuery(from Certificate where lower(assignedTo)=:userName)
.setString("userName",username);
假设:存在名为Certificate 的表,字段为assignedTo。
session 是休眠会话。
【讨论】:
HQL 支持 EJB 3.0 规范在 SELECT 和 WHERE 子句中定义的 upper() 函数。来自文档:
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%'
【讨论】: