Search code examples
sqlhibernateselectcase-sensitive

Case-insensitive search using Hibernate


I'm using Hibernate for ORM of my Java app to an Oracle database (not that the database vendor matters, we may switch to another database one day), and I want to retrieve objects from the database according to user-provided strings. For example, when searching for people, if the user is looking for people who live in 'fran', I want to be able to give her people in San Francisco.

SQL is not my strong suit, and I prefer Hibernate's Criteria building code to hard-coded strings as it is. Can anyone point me in the right direction about how to do this in code, and if impossible, how the hard-coded SQL should look like?

Thanks,

Yuval =8-)


Solution

  • For the simple case you describe, look at Restrictions.ilike(), which does a case-insensitive search.

    Criteria crit = session.createCriteria(Person.class);
    crit.add(Restrictions.ilike('town', '%fran%');
    List results = crit.list();