2012-01-05 64 views
4

我有Post和PostVote之间的一对多关系。我希望能够检索邮政以及特定用户如何投票。在DQL我想获取信息和相关PostVote实体,但只有一个地方user_id是例如5我可以在DQL中使用“ON”关键字还是需要使用Native Query?

我似乎并没有能够在SQL关键字像这样使用:

->createQuery('SELECT p, pv FROM Post p LEFT JOIN p.postvotes ON pv.user = :userid WHERE p.id = :postid') 

如果我使用WHERE过滤出的结果,它创建一个问题,除非至少有一个postvote对象存在不显示结果:

->createQuery('SELECT p, pv FROM Post p LEFT JOIN p.postvotes WHERE p.id = :postid' AND pv.user = :userid) 

原产查询我能做到这一点的唯一途径?

回答

10

你必须使用WITH关键字DQL来实现:

SELECT p, pv FROM Post p LEFT JOIN p.postvotes WITH pv.user = :userid WHERE p.id = :postid 
相关问题