Rethink: criteria1 = Criteria(name1, operators.lessThan, value1) criteria2 = Criteria(name2, operators.in, value2) criteriaGroup = CriteriaGroup() criteriaGroup.and(criteria1) criteriaGroup.and(criteria2) criteriaGroup.or(criteria3) sql = object.buildSqlSelect(criteriaGroup) // mark