Как избежать лишних левых объединений в запросе доктрины при использовании наследования одной таблицы? - PullRequest
0 голосов
/ 01 апреля 2019

Я использую Наследование отдельных таблиц в сущности доктрины с дискриминациейMapColums в качестве Медиа и Изображение , но при извлечении данных из Медиа сущности, вызывающейдополнительное левое соединение в таблице мультимедиа в запросе доктрины, вызывающее проблему с производительностью.Как я могу избежать этого дополнительного левого соединения?

Что ж, если я удалю карту дискриминатора, дополнительного левого соединения не будет, и производительность увеличится.Но если кто-нибудь знает, есть ли какая-либо опция с Карта дискриминатора

Ниже приведены классы сущностей:

/**
 * @ORM\Entity(repositoryClass="Common\Repository\MediaRepository")
 * @ORM\Table(name="AcsiMedia_Media")
 * @ORM\InheritanceType("SINGLE_TABLE")
 * @ORM\DiscriminatorColumn(name="type", type="string")
 * @ORM\DiscriminatorMap({"media" = "Media", "image" = "Image"})
 */
class Media
{
}



/**
 * @ORM\Entity
 */
class Image extends Media
{
}

Так что в настоящее время, когда я пытаюсь извлечь изображения из таблицы мультимедиа,doctrine снова помещает дополнительное левое объединение таблицы Media, но это вызывает проблемы с производительностью.Таким образом, кроме удаления Dicriminator map , есть ли другой способ избежать этого левого соединения?

...