namespace = trim((string)$namespace, '\\') . '\\'; $this->prefix = (string)$prefix; } public function loadClassMetadata(LoadClassMetadataEventArgs $eventArgs) { /** @var ClassMetadataInfo $classMetadata */ $classMetadata = $eventArgs->getClassMetadata(); if (substr($classMetadata->getName(), 0, strlen($this->namespace)) != $this->namespace) { return; } if (!$classMetadata->isInheritanceTypeSingleTable() || $classMetadata->getName() === $classMetadata->rootEntityName) { $classMetadata->setPrimaryTable(['name' => $this->prefix . $classMetadata->getTableName()]); } foreach ($classMetadata->getAssociationMappings() as $fieldName => $mapping) { if ($mapping['type'] == ClassMetadataInfo::MANY_TO_MANY && $mapping['isOwningSide']) { $mappedTableName = $mapping['joinTable']['name']; $classMetadata->associationMappings[$fieldName]['joinTable']['name'] = $this->prefix . $mappedTableName; } } } }