update tutorial framework español php doctrine doctrine2

php - tutorial - Doctrine2: unión arbitraria y herencia de tabla única



doctrine2 php web framework (3)

¿Has probado una combinación interna en lugar de una combinación izquierda? La consulta que necesitas probablemente podría

SELECT a.id, b.id FROM a INNER JOIN b ON ( a.something = b.something ) WHERE b.type IN ( ''1'', ''2'', ''3'' )

Puede obtener eso cambiando la función leftJoin por join, o creando la consulta con el método createQuery para consultas de aduanas.

Nota: Esta es una limitación de ORM informada en el rastreador de problemas del proyecto

Me enfrenta un problema al crear una consulta DQL utilizando la sintaxis de combinación arbitraria introducida en Doctrine 2.3 en una clase de entidad que es la raíz de una jerarquía.

Dadas estas clases:

A - sin herencia

B1 - resumen, raíz de una jerarquía, columna discriminadora se llama ''tipo''

Configuré un generador de consultas como este:

$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'');

Y la Doctrina SQL genera algo como esto:

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

El problema es que el dónde hace que la izquierda se junte inútil.

¿Hay alguna manera de forzar la condición en la columna del discriminador que se colocará en la unión? Al menos eso lo haría ...

¿Debo completar un informe de error?


prueba esto

SELECT a.id, b.id FROM a INNER JOIN b ON ( a.something = b.something ) and b.type IN ( ''1'', ''2'', ''3'' )