我想在使用like和过滤HQL中的关键字之前,将表中的列更改为大写。
这是我的查询
SELECT abc
FROM ABC abc
WHERE abc.id = ?
And upper(abc.description) like '%?%'
谢谢
最佳答案
HQL支持EJB 3.0规范在upper()
和SELECT
子句中定义的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%'
参考资料
Hibernate Core参考指南
14.10. Expressions
JPA 1.0规范
第4.6.16.1节“字符串函数”
关于hibernate - 如何在HQL Hibernate中将列的大小写更改为Upper,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3940558/