我执行这样的简单查询,但会丢失所有与剧集无关的对象:
$query = $this->getEntityManager()
->createQuery('
SELECT p,e
FROM AcmeDemoBundle:Place p
JOIN p.episodes e
WHERE p.id = :id'
)
->setParameter('id',$id);
这是一个简单的 asso:
/**
* @ORMOneToMany(targetEntity="Episode", mappedBy="place")
*/
protected $episodes;
我的查询会自动丢弃具有空$episodes集合的对象。有谁知道为什么?我确信这是有道理的,但我无法弄清楚这一点。有没有办法无论如何获取对象,无论有没有 asso 情节?
非常感谢。
我认为你想要一个LEFT JOIN
而不仅仅是一个JOIN
。
JOIN 仅提供左侧的记录,这些记录在右侧也有记录。
LEFT JOIN 从左侧提供记录,无论它们是否在右侧也有记录。