注:這是一個ORM限制reported on the project's issue trackerDoctrine2:任意加入和單表繼承
我現在面臨使用上的實體類學說2.3推出的任意連接語法建設DQL查詢的問題這是層次結構的根源。
考慮到這些類:
A - 沒有繼承
B1 - 抽象層次的根,鑑別列被命名爲 '型'
我設置一個查詢生成器像這個:
$qb->select('a.id AS idA, b.id AS idB')
->from('\Entity\A', 'a')
->leftJoin('\Entity\B1', 'b', \Doctrine\ORM\Query\Expr\Join::WITH, 'a.something=b.something');
而且SQL Doctrine生成的是是這樣的:
SELECT a.id, b.id FROM a LEFT JOIN b ON (a.something=b.something) WHERE b.type IN ('1', '2', '3')
的問題是,在那裏使左加入沒用。
是否有辦法強制鑑別器列上的條件放置在連接中?至少這會使它...
我應該填寫一個錯誤報告嗎?
嗯,我想檢索所有的A元素,即使是那些沒有任何B上的內加入將無濟於事。實際上,由於b.type列上的where條件,當前行爲與我使用內部聯接相同。 – Jay