protected function getCriteria($value, array $fields)
{
$classMetadata = $this->em->getClassMetadata($this->class);
$criteria = array();
foreach ($fields as $field) {
if (!$classMetadata->hasField($field)) {
throw new \InvalidArgumentException(sprintf('The "%s" class metadata does not have any "%s" field or association mapping.', $this->class, $field));
}
$criteria[$field] = $classMetadata->getFieldValue($value, $field);
}
return $criteria;
}