Ini adalah salah satu situasi di mana Doctrine ORM kemungkinan akan menyebabkan Anda lebih banyak masalah daripada menyelesaikannya. Anda dapat:
- Gunakan kueri asli
dan
ResultSetMapping
yang relevan pengaturan - Perbaiki kueri SQL Anda menjadi sesuatu yang dapat ditangani Doctrine di DQL. Melihat kueri yang Anda miliki, ada beberapa cara berbeda yang dapat Anda lakukan (mis. memperlakukan subkueri sebagai tabel sementara di bagian FROM/JOIN) tetapi saya tidak dapat melihat cara Doctrine DQL mengizinkan
- Lakukan saja SQL langsung menggunakan Doctrine DBAL. Sepertinya Anda menggunakan
$this->_em
yang membuat saya berpikir Anda berada diEntityRepository
, sehingga Anda dapat melakukan:$this->_em->getConnection()
untuk mendapatkan Koneksi DBAL lalu lakukan$conn->query()
. Jelas dengan cara ini Anda kehilangan manfaat ORM (database agnostic, dll.), tetapi Anda dapat menganggap ORM memiliki pajak yang mengeksekusi kueri kompleks.
Saya mengerti tidak satu pun dari ini yang ideal tetapi dari pengalaman, terkadang lebih baik untuk mendorong Doctrine ORM keluar dari jalan untuk mencapai apa yang Anda butuhkan.