Dit is een van die situaties waarin Doctrine ORM u waarschijnlijk meer problemen zal bezorgen dan oplost. Je zou kunnen:
- Gebruik een native query
en relevante
ResultSetMapping
instellen - Refactor uw SQL-query in iets dat Doctrine aankan in DQL. Kijkend naar de query die je hebt, zijn er een aantal verschillende manieren waarop je dit zou kunnen doen (bijv. de subquery behandelen als een tijdelijke tabel in het FROM / JOIN-gedeelte), maar ik zie geen manier waarop Doctrine DQL zou toestaan
- Ga gewoon voor rechte SQL met Doctrine DBAL. Het lijkt erop dat je
$this->_em
. gebruikt waardoor ik denk dat je in eenEntityRepository
zit , dus je zou kunnen doen:$this->_em->getConnection()
om een te krijgen DBAL-verbinding doe dan gewoon$conn->query()
. Op deze manier verliest u natuurlijk de voordelen van een ORM (database-agnostisch enz.), maar u kunt ORM's zien als een belasting die complexe query's uitvoert.
Ik begrijp dat geen van deze ideaal is, maar uit ervaring is het soms beter om Doctrine ORM uit de weg te ruimen om te bereiken wat je nodig hebt.