如何在HQL Hibernate中将列更改为Upper

Gau*_*uls 15 hibernate hql

我想在使用like之前将列从表更改为大写并过滤HQL中的关键字是什么?

这是我的疑问

SELECT abc
FROM ABC abc
WHERE abc.id = ?
And upper(abc.description) like '%?%'
Run Code Online (Sandbox Code Playgroud)

谢谢

Pas*_*ent 40

HQL upper()SELECTWHERE子句中支持EJB 3.0规范定义的函数.从文档:

14.10.表达式

  • ...
  • 通过EJB-QL 3.0定义的任何功能或操作符:substring(),trim(), lower(),upper(),length(),locate(), abs(),sqrt(),bit_length(),mod()
  • ...

所以以下应该有效:

from DomesticCat cat where upper(cat.name) like 'FRI%'
Run Code Online (Sandbox Code Playgroud)

参考

  • Hibernate核心参考指南
  • JPA 1.0规范
    • 第4.6.16.1节"字符串函数"