Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

सिद्धांत DQL या QueryBuilder का उपयोग करके MySql क्वेरी को कनवर्ट करने में असमर्थ

यह उन स्थितियों में से एक है जहां सिद्धांत ओआरएम आपको हल करने की तुलना में अधिक मुद्दों का कारण बनने जा रहा है। आप यह कर सकते हैं:

  1. एक मूल क्वेरी का उपयोग करें और प्रासंगिक ResultSetMapping सेटअप
  2. अपनी SQL क्वेरी को किसी ऐसी चीज़ में दोबारा बदलें जिसे DQL DQL में संभाल सके। आपके पास जो प्रश्न है उसे देखते हुए आप इसे करने के कई अलग-अलग तरीके हैं (उदाहरण के लिए सबक्वायरी को FROM / JOIN भाग में एक अस्थायी तालिका के रूप में मानना) लेकिन मुझे ऐसा कोई तरीका नहीं दिख रहा है जिससे Doctrine DQL अनुमति देगा
  3. डॉक्ट्रिन डीबीएएल का उपयोग करके सीधे एसक्यूएल के लिए जाएं। ऐसा लगता है कि आप $this->_em . का उपयोग कर रहे हैं जो मुझे लगता है कि आप एक EntityRepository . में हैं , तो आप यह कर सकते हैं:$this->_em->getConnection() एक प्राप्त करने के लिए डीबीएएल कनेक्शन तो बस $conn->query() do करें . जाहिर है इस तरह आप एक ORM (डेटाबेस अज्ञेयवादी आदि) के लाभों को खो देते हैं, लेकिन आप ORM को जटिल प्रश्नों को निष्पादित करने वाले कर के रूप में सोच सकते हैं।

मैं समझता हूं कि इनमें से कोई भी आदर्श नहीं है, लेकिन अनुभव से, कभी-कभी आपको जो चाहिए उसे हासिल करने के लिए Doctrine ORM को रास्ते से हटा देना बेहतर होता है।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एकाधिक तालिकाओं के लिए ड्रूपल एसक्यूएल सशर्त खंड?

  2. Mysql सरणी में एकाधिक पंक्ति हटाएं

  3. MySQL के लिए PDO का lastInsertId एक दौड़ की स्थिति है?

  4. PHP एक HTML फॉर्म से mysql में रिकॉर्ड की एक चर संख्या डालें

  5. चेकबॉक्स के एकाधिक मान सम्मिलन केवल डेटाबेस में अंतिम मान ले रहा है