protected function setField($ent, EntityDef $def, $fieldName, $fieldValue)
 {
     $metadata = $def->getEntityMetadata();
     if ($metadata->isCollectionValuedAssociation($fieldName)) {
         $metadata->setFieldValue($ent, $fieldName, $this->createCollectionFrom($fieldValue));
     } else {
         $metadata->setFieldValue($ent, $fieldName, $fieldValue);
         if (is_object($fieldValue) && $metadata->isSingleValuedAssociation($fieldName)) {
             $this->updateCollectionSideOfAssocation($ent, $metadata, $fieldName, $fieldValue);
         }
     }
 }