Имена динамических таблиц / сущностей в Doctrine 2

Я надеюсь, что кто-то может пролить свет на то, что происходит с моим кодом.

Мне нужно иметь сущность, которая представляет общую таблицу в качестве модели для таблиц с суффиксом X id. Например, у меня есть сущность: CustomerX Таблицы, которые мне нужно запросить: cusotmer_1, customer_2, customer_3 ... и т. Д.

Я в настоящее время использую:

class CustomerX {
/**
 * CustomerX
 *
 * @Table(name="customer_")
 * @Entity
 */


//..... properties and setters/getters....

private $_tableName = null;

public function getTableName() {
    return $this->_tableName;
}

public function setTableName($tableName) {
    $this->_tableName = $tableName;
    return $this;
}

public function loadClassMetadata(LoadClassMetadataEventArgs $eventArgs)
{
    $classMetadata = $eventArgs->getClassMetadata();

    $table = $classMetadata->table;
    $table['name'] = 'customer_'.$this->getTableName();
    $classMetadata->setPrimaryTable($table);
}


public static function getCustomerRecords($CustomerId) {
    $em = \Helper_Doctrine::em();

    $custTable = new \ME\CustomerX();
    $custTable->setTableName($CustomerId);
    $evm = $em->getEventManager();
    $evm->addEventListener(\Doctrine\ORM\Events::loadClassMetadata, $custTable);

    //get the customer info
    $query = $em->createQuery(
        'SELECT w
         FROM \ME\CustomerX w
         WHERE w.customerId = :CustId';
    $query->setParameter('CustId', $CustomerId);
    $custParams = $query->getResult();

    $evm->removeEventListener(\Doctrine\ORM\Events::loadClassMetadata, $custTable);
    $em->flush();

    return $custParams;
}

}

Таким образом, проблема в том, что я могу установить правильную настройку при первом запуске через получение клиента, но затем во второй раз sql, сгенерированный доктриной, заканчивается использованием первой таблицы, которую я создал.

Поэтому, если я сначала запустил: CustomerX :: getCustomerRecords ('123'), запускается sql, и когда я запускаю CustomerX :: getCustomerRecords ('987'), все еще используется 'customer_123'.

Я должен делать что-то не так. Если у кого-то есть какие-либо предложения о том, как правильно удалить или сбросить имя таблицы на что-то новое, это было бы здорово.

Благодарю.

Я изначально использовал это как ссылку.Программно изменить имя схемы таблицы в Doctrine2?

Ответы на вопрос(1)

Ваш ответ на вопрос