/**
  * @param EntityManagerInterface $manager
  * @param ClassMetadata          $classMetadata
  * @param RouterInterface        $router
  */
 public function __construct(EntityManagerInterface $manager, ClassMetadata $classMetadata, RouterInterface $router)
 {
     $this->manager = $manager;
     $this->connection = $manager->getConnection();
     $this->classMetadata = $classMetadata;
     $this->serializer = new Serializer($classMetadata, $manager->getUnitOfWork(), $manager->getMetadataFactory());
     $this->router = $router;
 }
 /**
  * Creates a new repository instance for an entity class
  *
  * @param EntityManagerInterface $manager
  * @param string                 $entityName
  *
  * @return EntityRepository
  */
 protected function createRepository(EntityManagerInterface $manager, $entityName)
 {
     $classMetadata = $manager->getClassMetadata($entityName);
     return new EntityRepository($manager->getUnitOfWork()->getEntityPersister($classMetadata->getName()), $classMetadata);
 }