Я использую Doctrine 2, чтобы попытаться выполнить запрос с внутренним объединением.У меня есть сущность сайта и сущность страницы.Каждый сайт может иметь много страниц, и каждая страница может принадлежать только одному сайту.У меня есть внешний ключ site_id в строках таблицы моих страниц.В моем объекте Site я создал ассоциацию OneToMany, в которой целевой объект является объектом моей страницы, а mappedBy установлен на Site.
/**
* @var \Doctrine\Common\Collections\ArrayCollection
* @OneToMany(targetEntity="Page", mappedBy="Site", cascade={"persist", "remove"})
*/
private $pages;
В моей сущности Page у меня есть ассоциация ManyToOne, где целевая сущность установлена в Site.
/**
* @var App\Entity\Site
* @ManyToOne(targetEntity="Site")
*/
private $site;
Вот мой оператор построителя запросов, в котором я передаю определенный идентификатор сайта:
$qb = $this->_em->createQueryBuilder();
$qb->select('s')
->from('App\Entity\Site', 's')
->innerJoin('s.pages', 'p')
->where('s.id = :id')
->setParameter('id', $id);
, а здесь - фактический SQL, который я получаю:
SELECT s0_.id AS id0, s0_.domain AS domain1 FROM sites s0_ INNER JOIN WHERE s0_.id = ?
Видите, как информация INNER JOIN полностью отсутствует?Я что-то здесь не так делаю или это проблема Doctrine 2?