获取关联是否存在

时间:2012-08-09 17:28:24

标签: doctrine doctrine-orm

我执行这样的简单查询,但是松散了所有与剧集无关的对象:

$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 Collection的对象。有谁知道为什么?我确信它有道理,但我无法弄清楚这一点。 有没有办法获取对象,无论是否存在asso剧集?

非常感谢。

1 个答案:

答案 0 :(得分:1)

我认为你想要一个LEFT JOIN而不仅仅是一个JOIN

JOIN仅提供左侧的记录,右侧也有记录。
LEFT JOIN从左侧开始记录,无论它们是否在右侧都有记录。