La Doctrine innerjoin sur “un à plusieurs” de la relation avec le querybuilder

J'ai suivantes ER et j'ai besoin d'exécuter la requête suivante dans Symfony2-la Doctrine de l'utilisation de Query Builder (jointure est utilisé seulement lorsque le filtre est demandé)

SELECT *
FROM
  `session`
  INNER JOIN `goal` ON (`session`.`id` = `goal`.`session_id`)
WHERE
  `goal`.`name` = 'Background Dx' AND 
  `session`.`gsite_id` = '66361836'

La Doctrine innerjoin sur “un à plusieurs” de la relation avec le querybuilder

Objectif de la déclaration de

/**
....
 *
 * @ORM\Table(name="goal")
 * @ORM\Entity
 */
class Goal
{
    ...
    /**
     * @var Session
     *
     * @ORM\ManyToOne(targetEntity="Session")
     * @ORM\JoinColumns({
     *   @ORM\JoinColumn(name="session_id", referencedColumnName="id")
     * })
     */
    private $session;
    ...
}

Classe Session ne contient aucune référence à l'objectif

Par la lecture de la documentation en ligne, il semble que la doctrine requiert la présence de la colonne sur l'entité de Session pour effectuer demandé de la rejoindre. Est-il vraiment, ou il ya une autre façon?

Mon QueryBuilder

$rep = $this->em->getRepository(Session::repositoryName);
$qb = $rep->createQueryBuilder("s");

$qb->setMaxResults(50);


//site
if ($params->site != null){
    /** @var Gsite **/
    $site = $params->site;
    $qb->andWhere($qb->expr()->eq("s.site",":site"))->setParameter("site",$site);
}
if (isset($params->goalName)){
    ///SOMETHING
    ....
    ...
    ...
}

$query = $qb->getQuery();
$paginator = new Paginator($query);
return $paginator;
InformationsquelleAutor Alekc | 2012-12-20