java - partially mapping the result of a NamedNativeQuery to a class -


मेरे पास एक @ एंटीटी वर्ग व्यक्ति है, जिसमें एकाधिक फ़ील्ड और मैं कई @NamedNativeQuery से व्यक्ति वर्ग के परिणाम को मैप करना चाहता हूं, लेकिन मैं जो प्रश्न पूछ रहा हूं वह में प्रत्येक फ़ील्ड के लिए मूल्य नहीं लौटाता है व्यक्ति वर्ग जब मैं कोई क्वेरी चलाने की कोशिश करता हूं तो मुझे निम्न त्रुटियां मिलती हैं:

  [त्रुटि] o.h.u.JDBCExceptionReporter - अमान्य स्तंभ नाम बार [त्रुटि] खेल - कार्रवाई का आह्वान नहीं कर सकता, आखिरकार एक त्रुटि मिली: javax.preistence.PersistenceException: org.hibernate.exception.SQLGrammarException: क्वेरी को निष्पादित नहीं कर सका  

मेरी कक्षा को समान रूप से सेट किया गया है इसे करने के लिए: = Person.class), नाम @NationalNativeQuery (name = "getBar", // {idnumber, नाम, बार} क्वेरी = "EXEC dbo.proc_get_bar: name", resultClass = person.class के लिए मूल्य लौटाता है}}) @ एंटीटी सार्वजनिक वर्ग व्यक्ति {@Id @Column (name = "idnumber") निजी आईआईएनएनम्बर; @ कॉलम (नाम = "नाम") निजी स्ट्रिंग नाम; @ कॉलम (नाम = "जन्मतिथि") निजी स्ट्रिंग जन्मदिन; @ कॉलम (नाम = "एफू") निजी स्ट्रिंग फू; @ कॉलम (नाम = "बार") निजी स्ट्रिंग बार; // सभी उपयुक्त प्राप्तकर्ता और सेटर विधियों को कार्यान्वित किया गया है)

मैंने दो बार जांच की और व्यक्ति वर्ग के सभी कॉलम करते हैं, वास्तव में, तालिका में मौजूद हैं पूछे।

मेरा वास्तविक वर्ग बहुत बड़ा है और उसके कारण और कुछ सुरक्षा चिंताओं, मैं नहीं चाहता कि मेरे प्रश्नों को हर क्षेत्र वापस करना है और मुझे उम्मीद है कि यह एक आसान तरीका है अगर उन्हें क्वेरी द्वारा मान वापस नहीं किया जाता है तो उन्हें null का मान देने के लिए मैंने प्रत्येक फ़ील्ड को घोषणा में null को सेट करने की कोशिश की है (नीचे दिए गए उदाहरण), लेकिन यह भी काम नहीं करता।

  @Column (name = "bar") निजी स्ट्रिंग बार = नल;  

मैं वास्तव में हर एक प्रश्न के लिए एक अनुरूप वर्ग बनाने की ज़रूरत नहीं है जो मुझे चलाने की जरूरत है, यदि मैं करने की कोशिश कर रहा हूं तो संभव है कि किसी भी मदद की बहुत सराहना की जाएगी। अग्रिम धन्यवाद।

मुझे विश्वास है कि आप @ नामांकित संपर्क उपयोग को गलत समझा है। इस एनोटेशन को एक एसक्यूएल क्वेरी के साथ प्रयोग किया जाना चाहिए और संग्रहीत कार्यविधि के साथ नहीं। अपवाद SQLGrammarException को देखते हुए: क्वेरी निष्पादित नहीं कर सका यह देखने के लिए संभव है कि व्याकरण अपवाद है, क्वेरी को पार्स नहीं किया जा सकता।

JPA 2.1 के साथ आप एनोटेशन का उपयोग कर सकते हैं @ नामित स्टोरेजप्रोसेक्चरक्लाइज यह संग्रहीत कार्यविधियों के समर्थन में है।


Comments