我希望获取一个不存在反向关联的实体(在1:1关联上)
我收到错误:
DQL查询中不支持反向的单值关联路径表达式。用一个 显而易见的连接。
查询:
$query = $this->getEntityManager()->createQuery("
SELECT DISTINCT(p.date)
FROM MainBundle:Price p
WHERE p.emaPrice IS NULL
ORDER BY p.date ASC
")
->setMaxResults(1);
$date = $query->getOneOrNullResult();
我理解错误,但我真的不肯修复它。我已经读过我应该添加一个明确的JOIN,但我已经添加了它,但仍然没有运气。
修改 查询加入:
$query = $this->getEntityManager()->createQuery("
SELECT DISTINCT(p.date)
FROM MainBundle:Price p
JOIN MomentumBundle:EmaPrice ep
WITH ep.id = p.emaPrice
WHERE p.emaPrice IS NULL
ORDER BY p.date ASC
")
->setMaxResults(1);
$date = $query->getOneOrNullResult();
答案 0 :(得分:4)
我要感谢@Flip和@lifo,感谢他们帮助我解决这个问题:
$query = $this->getEntityManager()->createQuery("
SELECT DISTINCT(p.date)
FROM MainBundle:Price p
LEFT JOIN MomentumBundle:EmaPrice ep
WITH ep.price = p.id
WHERE ep IS NULL
ORDER BY p.date ASC
")
->setMaxResults(1);
$date = $query->getOneOrNullResult();