我想在使用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/

10-13 03:36