В итоге я всё это решил так, я выкинул на помойку этот поганый Doctrine\ORM и стал просто использовать Doctrine\DBAL. Я создал папку Models, там объявил класс Model в нем получаю Doctrine\DBAL\Connection. Затем от Model я наследую другие мои модели. Для того что бы всё это нормально работало, нам нужна более совершенная реализация DI, что бы постоянно не объявлять каждую модель как сервис, для этого есть шикарнейший бандл
https://github.com/dunglas/DunglasActionBundle.
В итоге у меня нету ненужных Entity и Repository, я сократил код не в 2 или 3 раза, а наверное раз в 5! Теперь у меня есть простая и лаконичная модель без отвратительнейших и ненужных ORM связей. При этом я могу использовать все прелести Doctrine\DBAL!
Пример Model:
namespace AppBundle\Models;
use Doctrine\DBAL\Connection;
class Model
{
private $connection;
public function __construct(Connection $connection)
{
$this->connection = $connection;
}
public function getConnection()
{
return $this->connection;
}
}
Так что смело выкидывайте Doctrine\ORM да и вообще не используйте ORM!