Doctrine 2 Restricción de asociaciones con DQL

Parece haber un descuido en Doctrine 2.1 donde no es fácil devolver una colección de subconjuntos para una asociación.

http: //www.doctrine-project.org/docs/orm/2.1/en/reference/limitations-and-known-issues.html#restricing-association

Los documentos recomiendan escribir un método de búsqueda de repositorio, lo cual tiene sentido porque eso fue lo primero que pensé hacer.

Sin embargo, sin tener una referencia al EntityManager dentro de una Entidad, no puedo ver cómo recuperarías el Repositorio de la asociación y esto parece anular el punto de separar el Dominio de la Base de Datos.

¿Existe una estrategia recomendada para este problema?

Aquí está mi interpretación de su solución sugerida.

class Category
{
    protected $id;
    protected $articles; // PesistentCollection
    protected $em; // The EntityManager from somewhere?

    public function getVisableArticles()
    {
        return $this->em->getRepository('Article')
                    ->getVisibleByCategory($this);
    }
}

Respuestas a la pregunta(1)

Su respuesta a la pregunta