2013-08-10 6 views
5

मैं से बाहर बेहद अजीब व्यवहार हो रही है जेपीए 2.0org.hibernate.QueryException: सभी नाम वाले पैरामीटर निर्धारित किया गया है नहीं: []

मैं एक प्रश्न जो पसंद, लग रहा है निर्माण करने के लिए कोशिश कर रहा हूँ जहाँ employeId और empDepartment लंबे जावा तर्क

Query query=em.createQuery("SELECT e FROM Employee e WHERE e.empId = :empId and e.empDepartment = :empDepartment"); 
query.setParameter("empId" ,employeId); 
query.setParameter("empDepartment",empDepartment); 

लेकिन पहली बार के लिए ऊपर क्वेरी does not काम, यह उपरोक्त त्रुटि पैदा लेकिन जब दूसरी बार मैं फिर से एक ही विधि trigged हर चीज आसानी से चला गया, इस हर समय होता है के माध्यम से गुजर मान हैं , इसके लिए क्या कारण हो सकता है?

+1

क्या आप हमें यह पूरा तरीका दिखा सकते हैं जहां यह हो रहा है? – chrylis

+1

आपके पास 'query.setParameter' कॉल के आस-पास कुछ' if' कथन होना चाहिए जो उन्हें पहली बार निष्पादित करने से रोकें। क्या आप पूरी विधि को @chrylis के रूप में सुझा सकते हैं? –

उत्तर

0

आप इस कोशिश कर सकते:

Query query=em.createQuery("SELECT e FROM Employee e WHERE e.empId = ? and e.empDepartment = ?"); 
query.setParameter(1, employeId); 
query.setParameter(2, empDepartment); 

यदि यह या तो काम नहीं कर रहा, की तुलना में वहाँ के रूप में अच्छी आपकी क्वेरी सामग्री के साथ एक समस्या हो सकती, मापदंडों के प्रतिस्थापन के साथ नहीं। शायद प्रकार सही नहीं हैं। पैरामीटर प्रकार संदर्भ द्वारा अनुमानित है।

+1

उत्तर के लिए हाय धन्यवाद – user2670113

0
Query query=em.createQuery("SELECT e FROM Employee e WHERE e.empId=:empId and e.empDepartment=:empDepartment"); 

query.setParameter("empId" ,employeId); 
query.setParameter("empDepartment",empDepartment); 

मुझे नहीं पता कि कारण क्या था, लेकिन यह मेरे साथ हुआ। इसे इस तरह से आजमाएं। बस = empId और अन्य पैरामीटर के बीच सफेद रिक्त स्थान हटाएं।

संबंधित मुद्दे