我正在使用主體2嘗試使用內部連接執行查詢。我有一個Site實體和一個Page實體。每個網站可以有多個網頁,每個網頁只能屬於一個網站。我的頁錶行中有一個site_id外鍵。在我的Site實體中,我創建了OneToMany關聯,其中目標實體是我的Page實體,而mappedBy設置爲Site。主體2查詢缺少內部連接的一部分
/**
* @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;
這裏就是我傳遞一個特定網站的ID我的查詢生成器語句:
$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信息完全丟失?我在這裏做錯了什麼,或者這是教條2的問題?
只要我有''包含在那裏,我選擇什麼並不重要。在我真正的查詢中,我包含'p',但是我只是從查詢中刪除了所有無關的東西來簡化我的問題。 –