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

हाइबरनेट:देशी बल्क मैनिपुलेशन क्वेरी निष्पादित नहीं कर सका

डेटाबेस (तैयार किए गए बयान) में पैरामीटरयुक्त प्रश्न होने पर, पैरामीटर को मान निर्दिष्ट करने से क्वेरी की संरचना और निष्पादन पथ नहीं बदलना चाहिए (अन्यथा डेटाबेस उन्हें पैरामीटरयुक्त प्रश्नों के रूप में नहीं मानते हैं और अपवाद फेंक देंगे)।

इसलिए आप जैसे प्रश्नों के लिए कथन तैयार नहीं कर सकते हैं:

  • select * from myTable order by ? . से * चुनें
  • select id, f1, ? from myTable . से
  • select * from ?

क्योंकि प्रत्येक पैरामीटर के लिए एक मान निर्दिष्ट करने से क्वेरी निष्पादन पथ बदल जाता है (याद रखें कि तैयार किए गए कथनों की क्वेरी को एक बार पार्स किया जाता है और एक निष्पादन पथ का परिणाम होता है)।

हाइबरनेट क्वेरी पार्सर पर समान नियम लागू होते हैं, आप पैरामीटर को एक मान निर्दिष्ट नहीं करेंगे जो क्वेरी संरचना को बदलता है।

मानों के साथ एक स्ट्रिंग असाइन करना 1, 2, 3 एक SHOULD-TO-BE-A-NUMBER पैरामीटर के लिए बस वही है, वास्तव में पहली क्वेरी का अनुवाद उसी तरह किया जाएगा जैसे update weight_note_receipt set pledge_id =:pledge where wn_id = :wns लेकिन दूसरे का अनुवाद update weight_note_receipt set pledge_id =:pledge where (wn_id = :x1 or wn_id = :x2 or wn_id = :x3) के रूप में किया जाएगा। , स्पष्ट रूप से अलग-अलग निष्पादन पथों के साथ अलग-अलग प्रश्न।

तो अगर हाइबरनेट ने अपवाद नहीं फेंका है, तो भी आपका डेटाबेस होगा।



  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 में मूल्य कीवर्ड से कैसे बचें?

  2. MySQL COUNT DISTINCT

  3. MySQL में चालू वर्ष, चालू माह और वर्तमान दिन प्राप्त करें

  4. डेटाबेस पासवर्ड कैसे बदलें

  5. MySQL sproc के पैरामीटर के रूप में LIMIT पास करना