0

このような単純なクエリを実行しますが、エピソードに関連付けられていないすべてのオブジェクトを失います。

$query = $this->getEntityManager()
            ->createQuery('
        SELECT p,e
        FROM AcmeDemoBundle:Place p
        JOIN p.episodes e
        WHERE p.id = :id'
        )
            ->setParameter('id',$id);

これは単純な関連付けです。

 /**
 * @ORM\OneToMany(targetEntity="Episode", mappedBy="place")
 */
protected $episodes;

私のクエリは、空の$episodesコレクションを持つオブジェクトを自動的に破棄します。誰かが理由を知っていますか?私はそれが理にかなっていると確信していますが、私はこれを理解することはできません。アソエピソードがあるかどうかに関係なく、とにかくオブジェクトをフェッチする方法はありますか?

どうもありがとう。

4

1 に答える 1

1

LEFT JOINただの代わりに欲しいと思いますJOIN

JOINは、右側にもレコードがある左側のレコードのみを提供します。
LEFT JOINは、右側にもレコードがあるかどうかに関係なく、左側からレコードを提供します。

于 2012-08-09T17:33:17.970 に答える