/**
  * Creates an "in" Criterion based on the specified property name and list of values.
  *
  * @param propertyName The property name
  * @param values The values
  * @return A Criterion instance
  */
 public Criteria in(String propertyName, Collection values) {
   validatePropertyName(propertyName, "in");
   Assert.notNull(values, "Cannot use in expression with null values");
   addToCriteria(Restrictions.in(propertyName, values));
   return this;
 }
 @Override
 public Query.Criterion createCriterion() {
   return Restrictions.in(propertyName, (Collection<?>) arguments[0]);
 }