3

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
                         ");

エンティティは読み込まれません。他のいくつかのエンティティと同じ関係を設定していて、それらとうまく機能しているため、何が間違っているのかわかりません。

4

1 に答える 1