1 対多 / 多対 1 の関係を持つエンティティがいくつかあります -
生産クラス -
/**
* @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");
productions、productionKeywords、およびキーワードはすべて正常に読み込まれますが、productKeywords とキーワードを取得しようとすると、
$query = $this->entityManager->createQuery("SELECT p, pk, k FROM \EntityProduction p
LEFT JOIN p.productionKeywords pk
LEFT JOIN pk.keyword k
");
エンティティは読み込まれません。他のいくつかのエンティティと同じ関係を設定していて、それらとうまく機能しているため、何が間違っているのかわかりません。