How do you “OR” criteria together when using a criteria query with hibernate?

I’m trying to do a basic “OR” on three fields using a hibernate criteria query.

Example

class Whatever{
 string name;
 string address;
 string phoneNumber;
}

I’d like to build a criteria query where my search string could match “name” or “address” or “phoneNumber”.

Answer

You want to use Restrictions.disjuntion(). Like so

session.createCriteria(Whatever.class)
    .add(Restrictions.disjunction()
        .add(Restrictions.eq("name", queryString))
        .add(Restrictions.eq("address", queryString))
        .add(Restrictions.eq("phoneNumber", queryString))
    );

See the Hibernate doc here.

Leave a Reply

Your email address will not be published. Required fields are marked *