我有一些具有一对多/多对一关系的实体 -
生产类——
/**
* @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
");
然后实体没有加载。不知道我做错了什么,因为我与其他一些实体有相同的关系设置并且它适用于它们。