/**
  * {@inheritDoc}
  */
 public function joinKeyColumnName($entityName, $referencedColumnName = null)
 {
     if (interface_exists($entityName) && strpos($entityName, 'Interface') !== false) {
         $entityName = str_replace('Interface', '', $entityName);
     }
     return parent::joinKeyColumnName($entityName, $referencedColumnName);
 }
 /**
  * @param string $className
  * @return string
  */
 public function classToTableName($className)
 {
     $bundleName = '';
     if (strpos($className, '\\') !== false) {
         $reflection = $this->createReflectionBundle($className);
         $bundleName = $reflection->getBundleName();
         $className = $reflection->getShortName();
     }
     return parent::classToTableName($bundleName . $className);
 }
 /**
  * {@inheritdoc}
  */
 public function joinTableName($sourceEntity, $targetEntity, $propertyName = null)
 {
     return parent::joinTableName($sourceEntity, $targetEntity, $propertyName) . ($this->joinTableFieldSuffix && !empty($propertyName) ? '_' . $this->propertyToColumnName($propertyName, $sourceEntity) : '');
 }
 /**
  * {@inheritdoc}
  */
 public function joinKeyColumnName($entityName, $referencedColumnName = null)
 {
     return parent::classToTableName($entityName) . '_' . ($referencedColumnName ?: $this->referenceColumnName());
 }
 /**
  * {@inheritdoc}
  *
  * This override adds a prefix to the underscored table name.
  */
 public function joinTableName($sourceEntity, $targetEntity, $propertyName = null)
 {
     return $this->prefix . parent::classToTableName($sourceEntity) . '_' . parent::classToTableName($targetEntity);
 }