Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Tidak dapat mengonversi kueri MySql menggunakan doktrin DQL atau QueryBuilder

Ini adalah salah satu situasi di mana Doctrine ORM kemungkinan akan menyebabkan Anda lebih banyak masalah daripada menyelesaikannya. Anda dapat:

  1. Gunakan kueri asli dan ResultSetMapping yang relevan pengaturan
  2. 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
  3. Lakukan saja SQL langsung menggunakan Doctrine DBAL. Sepertinya Anda menggunakan $this->_em yang membuat saya berpikir Anda berada di EntityRepository , 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.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySql menggabungkan LIMIT dan ORDER BY

  2. Pernyataan Pembaruan PDO PHP tidak berfungsi

  3. PHP MySQL cara menyimpan/melarikan diri dengan benar

  4. Jika ada cara saya dapat bergabung dalam tabel MS Sql ke Tabel MySql dalam satu kueri menggunakan MySql?

  5. Sesi MySQL Workbench tidak melihat pembaruan ke database