protected function shouldSkip($name)
 {
     if (parent::shouldSkip($name)) {
         return TRUE;
     }
     if (!$this->metadata->hasAssociation($name)) {
         return FALSE;
     }
     $metadata = $this->metadata->getAssociationMapping($name);
     if ($metadata['type'] === ClassMetadata::MANY_TO_ONE && $this->parent && $this->parent instanceof ContainerBuilder && $this->parent->getMetadata()->name === $metadata['targetEntity'] && !empty($metadata['inversedBy']) && $metadata['inversedBy'] === $this->name) {
         return TRUE;
         //back referencing
     }
     return FALSE;
 }