Hibernate Criteria Restrictions AND / OR combination
How would I achieve this using Hibernate Restrictions? (((A='X') and (B in('X',Y))) or ((A='Y') and (B='Z'))) think works Criteria criteria = getSession().createCriteria(clazz); Criterion rest1= Restrictions.and(Restrictions.eq(A, "X"), Restrictions.in("B", Arrays.asList("X",Y))); Criterion rest2= Restrictions.and(Restrictions.eq(A, "Y"), Restrictions.eq(B, "Z")); criteria.add(Restrictions.or(rest1, rest2)); For the new Criteria since version Hibernate 5.2: CriteriaBuilder criteriaBuilder = getSession().getCriteriaBuilder(); CriteriaQuery<SomeClass> criteriaQuery = criteriaBuilder.createQuery