Toto je jedna z těch situací, kdy vám Doctrine ORM pravděpodobně způsobí více problémů, než vyřeší. Můžete:
- Použijte nativní dotaz
a relevantní
ResultSetMapping
nastavení - Refaktorujte svůj SQL dotaz na něco, co Doctrine zvládne v DQL. Když se podíváte na dotaz, který máte, existuje několik různých způsobů, jak to můžete udělat (např. zacházet s poddotazem jako s dočasnou tabulkou v části FROM / JOIN), ale nevidím způsob, který by Doctrine DQL umožnil
- Jen jděte na přímý SQL pomocí Doctrine DBAL. Zdá se, že používáte
$this->_em
což mě nutí si myslet, že jste vEntityRepository
, takže můžete udělat:$this->_em->getConnection()
získat DBAL připojení pak stačí udělat$conn->query()
. Je zřejmé, že tímto způsobem ztratíte výhody ORM (databázová agnostika atd.), ale můžete si o ORM myslet, že mají daňovou správu provádějící složité dotazy.
Chápu, že žádná z nich není ideální, ale ze zkušenosti je někdy lepší Doctrine ORM odsunout z cesty, abyste dosáhli toho, co potřebujete.