18

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

Gauls
  • 1,955
  • 6
  • 28
  • 44

2 Answers2

42

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"
Pascal Thivent
  • 562,542
  • 136
  • 1,062
  • 1,124
0

I m writing a sample query in HQL:

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

Assumptions: a table named Certificate exists with field assignedTo. session is the Hibernate Session.

Ahmed Ashour
  • 5,179
  • 10
  • 35
  • 56
baidya
  • 266
  • 3
  • 3