2012-01-05 1 views
4

私は投稿と投稿の間にoneToMany関係を持っています。私はポストと特定のユーザーがどのようにそれに投票したかを取得できるようにしたいと考えています。 DQLで私はポストと関連PostVoteエンティティを取得したいと思いますが、一つだけのuser_idは、実施例5DQLで "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) 

ですか?

答えて

10

あなたはこれを達成するためにDQLにWITHキーワードを使用する必要があります。

SELECT p, pv FROM Post p LEFT JOIN p.postvotes WITH pv.user = :userid WHERE p.id = :postid 
関連する問題