class Company { /** * @ORM \Column(type="integer", name="ID") * @ORM \Id * @ORM \GeneratedValue(strategy="AUTO") */ protected $id; /** * @ORM \ManyToMany(targetEntity="Sector") * @ORM \JoinTable(name="CompanySectors", * joinColumns={ @ORM \JoinColumn(name="CompanyID", referencedColumnName="ID")}, * inverseJoinColumns={ @ORM \JoinColumn(name="SectorID", referencedColumnName="ID")} * ) * */ protected $sectors; } class Sector { /** * @ORM \Column(type="integer", name="ID") * @ORM \Id * @ORM \GeneratedValue(strategy="AUTO") */ protected $id; } 

There are 2 classes Company and Sector Task: Create a request for Doctrine 2 which pulls out all the companies that have SectorID = 1

    1 answer 1

    I think I need to add a constructor in the first class and assign $ sectors ArrayCollection.

     $qb->select('c') ->from('Company','c') ->innerJoin('c.sectors','s') ->where($qb->expr()->eq('s.id', 1)) 

    Further, if you need dql itself, just make

     (string)$qb