我試圖在第2學說中建立一個查詢,查找與任何給定VacancyWorkingHours
實體相關的所有Vacancy
實體。學說2 WHERE IN子句使用實體集合
的Vacancy
實體如下所示:
/**
* Vacancy
*
* @ORM\Table(name="vacancy")
* @ORM\Entity(repositoryClass="JaikDean\CareersBundle\Entity\VacancyRepository")
*/
class Vacancy
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var VacancyWorkingHours
*
* @ORM\ManyToOne(targetEntity="VacancyWorkingHours", inversedBy="vacancies")
* @ORM\JoinColumn(name="vacancy_working_hours_id", referencedColumnName="id")
**/
private $workingHours;
/* Other fields and methods are inconsequential */
}
我的查詢目前看起來如下,但返回因爲where子句的任何結果。在這個例子中,$workingHours
是包含許多VacancyWorkingHours
實體
$q = $this->createQueryBuilder('v')
->select('v')
->andWhere('v.workingHours IN (:workingHours)')
->setParameter('workingHours', $workingHours->toArray());
;
謝謝,我最終可能會走下那條路。特定的WHERE IN子句實際上是基於各種其他條件構建的更大查詢的一部分,因此從組織角度來看,使用查詢生成器更容易。 –