【问题标题】:How to change to case of a column to Upper in HQL Hibernate如何在 HQL Hibernate 中将列的大小写更改为 Upper
【发布时间】:2011-04-25 19:54:14
【问题描述】:

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

这是我的查询

SELECT abc
FROM ABC abc
WHERE abc.id = ?
And upper(abc.description) like '%?%'

谢谢

【问题讨论】:

    标签: hibernate hql


    【解决方案1】:

    我正在用 HQL 编写一个示例查询:

    session.createQuery(from Certificate where lower(assignedTo)=:userName)
        .setString("userName",username);
    

    假设:存在名为Certificate 的表,字段为assignedTosession 是休眠会话。

    【讨论】:

      【解决方案2】:

      HQL 支持 EJB 3.0 规范在 SELECTWHERE 子句中定义的 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%'
      

      参考文献

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

      【讨论】:

      • 我必须记住“ilike”是允许的!感谢您的回答!
      猜你喜欢
      • 2017-09-15
      • 2020-10-16
      • 2011-10-06
      • 2016-04-09
      • 2012-11-09
      • 1970-01-01
      • 2011-11-06
      • 1970-01-01
      • 2014-04-20
      相关资源
      最近更新 更多