У меня есть несколько объектов с отношением один-к-многим / много-к-одному –
Производственный класс –
/** * @OneToMany(targetEntity="ProductionsKeywords", mappedBy="production") */ protected $productionKeywords;
Класс ProductionsKeywords –
/** * @ManyToOne(targetEntity="Production", inversedBy="productionKeywords") * @JoinColumn(name="production_id", referencedColumnName="id", nullable=false) * @Id */ protected $production; /** * @ManyToOne(targetEntity="Keyword", inversedBy="keywordProductions") * @JoinColumn(name="keyword_id", referencedColumnName="id", nullable=false) * @Id */ protected $keyword;
Класс ключевого слова –
/** * @OneToMany(targetEntity="ProductionsKeywords", mappedBy="keyword") */ protected $keywordProductions;
Если я напишу DQL-запрос, например
$query = $this->entityManager->createQuery("SELECT p FROM \Entity\Production p");
Произведения, productionKeywords и ключевые слова все загружаются нормально, однако, если я пытаюсь подключиться к productionKeywords и ключевым словам, например
$query = $this->entityManager->createQuery("SELECT p, pk, k FROM \EntityProduction p LEFT JOIN p.productionKeywords pk LEFT JOIN pk.keyword k ");
то объекты не загружаются. Не уверен, что я делаю неправильно, поскольку у меня такая же настройка отношений с некоторыми другими объектами, и с ними все в порядке.