Post和PostVote之间有一个oneToMany关系。我希望能够检索帖子以及特定用户如何投票。在DQL中,我想检索Post和相关的PostVote实体,但只有一个user_id是例如5.
我似乎无法像这样使用ON 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)
Native Query是我实现这一目标的唯一方法吗?
答案 0 :(得分:13)
您必须在DQL中使用WITH关键字来完成此任务:
SELECT p, pv FROM Post p LEFT JOIN p.postvotes WITH pv.user = :userid WHERE p.id = :postid