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; }