private function getUniqueAndRequiredFields(ClassMetadata $meta, $entity)
 {
     $fields = array();
     foreach ($meta->getFieldNames() as $fieldName) {
         $mapping = $meta->getFieldMapping($fieldName);
         if (!empty($mapping['id']) && $meta->usesIdGenerator()) {
             // autogenerated id
             continue;
         }
         if (!empty($mapping['nullable']) && empty($mapping['unique'])) {
             // is nullable and is not unique
             continue;
         }
         $fields[$fieldName]['value'] = $meta->getFieldValue($entity, $fieldName);
         $fields[$fieldName]['quotedColumn'] = $this->quotes->getColumnName($fieldName, $meta, $this->platform);
         $fields[$fieldName]['type'] = Type::getType($mapping['type']);
     }
     return $fields;
 }