Deja fuera parte discriminadora de Doctrine 'SQL generado

Asume lo siguienteAbstractPage modelo:

/*
 *     @ORM\Entity
 *     @ORM\Table(name="page")
 *     @ORM\InheritanceType("SINGLE_TABLE")
 *     @ORM\DiscriminatorColumn(name="type", type="string")
 *     @ORM\DiscriminatorMap
 *     ({
 *         "page" = "Page",
 *         "link" = "Link"
 *     })
 */

Y la siguiente consulta de DQL:

SELECT p FROM \Page\Model\AbstractPage

El SQL generado será:

SELECT ... FROM page p0_ WHERE p0_.type IN ('page', 'link')

Ahora a la pregunta: ¿cómo puedo eliminar elWHERE cláusula de esta consulta. En consultas más complejas esta parte de laWHERE La cláusula hace que no sea posible utilizar algunos índices que están definidos. Esto se puede resolver agregandotype a los índices, pero esto hace que mis índices sean más grandes y siento que esto no es necesario.

losAbstractPage Es la raíz en el árbol de herencia. Por lo tanto estamos interesados ​​en TODOS los registros en la tabla. Omitiendo elWHERE La parte hace precisamente eso.

Entonces la pregunta es: ¿cómo puedo hacer que Doctrine elimine esto?WHERE Parte donde no es necesario.

¡Gracias!

Respuestas a la pregunta(1)

Su respuesta a la pregunta