Zostaw część dyskryminatora wygenerowanego przez Doctrine SQL

Załóżmy, co następujeAbstractPage Model:

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

I następujące zapytanie DQL:

SELECT p FROM \Page\Model\AbstractPage

Wygenerowany SQL będzie:

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

Teraz pytanie: jak mogę usunąćWHERE klauzula z tego zapytania. W bardziej złożonych zapytaniach ta częśćWHERE klauzula uniemożliwia użycie niektórych zdefiniowanych indeksów. Można to rozwiązać dodająctype do indeksów, ale to sprawia, że ​​moje indeksy są większe i uważam, że nie jest to konieczne.

TheAbstractPage to root w drzewie dziedziczenia. Dlatego interesują nas WSZYSTKIE rekordy w tabeli. PomijającWHERE część robi dokładnie to.

Pytanie brzmi: jak mogę usunąć DoctrineWHERE część tam, gdzie nie jest to konieczne.

Dzięki!

questionAnswers(1)

yourAnswerToTheQuestion