Deixe de fora a parte discriminadora do SQL gerado pelo Doctrine

Assuma o seguinteAbstractPage modelo:

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

E a seguinte consulta DQL:

SELECT p FROM \Page\Model\AbstractPage

O SQL gerado será:

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

Agora para a pergunta: como posso remover oWHERE cláusula desta consulta. Em consultas mais complexas, essa parte doWHERE cláusula torna impossível usar alguns índices que são definidos. Isso pode ser resolvido adicionandotype para os índices, mas isso faz meus índices maiores e eu sinto que isso não é necessário.

oAbstractPage é a raiz na árvore de herança. Assim, estamos interessados ​​em TODOS os registros da tabela. Omitindo oWHERE parte faz exatamente isso.

Então a questão é: como posso fazer o Doctrine remover esteWHERE parte onde não é necessário.

Obrigado!

questionAnswers(1)

yourAnswerToTheQuestion