Doctrine2:任意连接和单表继承

Jay*_*Jay 10 php doctrine doctrine-orm

注意:这是在项目的问题跟踪器上报告的ORM限制

我正面临一个问题,即使用Doctrine 2.3中引入的实体类(层次结构的根)上的任意连接语法来构建DQL查询.

鉴于这些类:

A - 没有继承

B1 - 抽象,层次结构的根,鉴别器列被命名为'type'

我设置了一个这样的查询生成器:

$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');
Run Code Online (Sandbox Code Playgroud)

SQL Doctrine生成的内容如下:

SELECT a.id, b.id FROM a LEFT JOIN b ON (a.something=b.something) WHERE b.type IN ('1', '2', '3')
Run Code Online (Sandbox Code Playgroud)

问题在于左边连接无用的地方.

有没有办法强制将鉴别器列上的条件放在连接中?至少那会使它......

我应该填写错误报告吗?

Jay*_*Jay 0

该错误已在 Doctrine 2.4 中修复

https://github.com/doctrine/doctrine2/issues/2934