Оставьте дискриминаторную часть сгенерированного в Doctrine SQL
Предположим следующееAbstractPage
модель:
/*
* @ORM\Entity
* @ORM\Table(name="page")
* @ORM\InheritanceType("SINGLE_TABLE")
* @ORM\DiscriminatorColumn(name="type", type="string")
* @ORM\DiscriminatorMap
* ({
* "page" = "Page",
* "link" = "Link"
* })
*/
И следующий запрос DQL:
SELECT p FROM \Page\Model\AbstractPage
Сгенерированный SQL будет:
SELECT ... FROM page p0_ WHERE p0_.type IN ('page', 'link')
Теперь к вопросу: как я могу удалитьWHERE
предложение из этого запроса. На более сложные запросы эта частьWHERE
Предложение не позволяет использовать некоторые индексы, которые определены. Это можно решить, добавивtype
к индексам, но это делает мои индексы больше, и я чувствую, что в этом нет необходимости.
AbstractPage
является корнем в дереве наследования. Таким образом нас интересуют ВСЕ записи в таблице. ОпускаяWHERE
часть делает именно это.
Итак, вопрос: как я могу заставить Доктрину удалить этоWHERE
часть, где это не нужно.
Спасибо!