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!