Search code examples
hibernatehql

How to change to case of a column to Upper in HQL Hibernate


I want to change a column from a table to uppercase before using like and filtering what is the keyword in HQL?

here's my query

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

Thanks


Solution

  • HQL supports the upper() function defined by the EJB 3.0 specification in the SELECT and WHERE clauses. From the documentation:

    14.10. Expressions

    • ...
    • Any function or operator defined by EJB-QL 3.0: substring(), trim(), lower(), upper(), length(), locate(), abs(), sqrt(), bit_length(), mod()
    • ...

    So the following should work:

    from DomesticCat cat where upper(cat.name) like 'FRI%'
    

    References

    • Hibernate Core Reference Guide
    • JPA 1.0 Specification
      • Section 4.6.16.1 "String Functions"