Вы должны установить некоторый столбец этой таблицы как первичный в setTableDefinition, чтобы доктрина не использовала первичный по умолчанию в качестве идентификатора.
Допустим, вы sid - это ваш фактический первичный ключ .. тогда ...
public function setTableDefinition(){
....
$this->hasColumn('sid', 'decimal', 2, array(
'type' => 'decimal',
'length' => 2,
'unsigned' => 0,
'primary' => true,
'default' => '0',
'notnull' => true,
'autoincrement' => false,
));
}
Обратите внимание на 'primary' => true
, это запрещает доктрине использовать id в качестве первичного ключа по умолчанию (даже если он даже не определен в файле определения таблицы.