java - Issue rendering JPQL custom query results into a JSF page -


मेरे पास निम्न नामित क्वेरी वाली इकाई है:

  @NamedQuery (name = " findAllGarbage ", क्वेरी =" g.filename, g.description का चयन करें, कचरा जी से g.uploadDate; ")   

समस्या यह है कि मैं रेंडर करने के लिए एक DataTable है कि परिणाम पास करना चाहते हैं , और मैं NumberFormatException प्राप्त करता है मुझे समझ में नहीं आता कि क्यों कोई भी संख्या कहीं भी नहीं है।

इस तरह से बाकी कार्यक्रम कैसा दिखता है:

- ईजेबी जो क्वेरी को निष्पादित करता है

  @Stateless (नाम = "ईजब्स / सर्च ईजेबी") सार्वजनिक वर्ग खोज ईजेबी ने ISearchEJB लागू किया है {@ प्रेसिजन कॉन्टैक्ट प्राइवेट एंटीटीमैनेजर; सार्वजनिक सूची & lt; कूड़ा & gt; FindAllGarbage () {क्वेरी क्वेरी = em.createNamedQuery ("findAllGarbage"); सूची के & lt; कचरा & gt; TmpGarbage = query.getResultList (); वापसी टीएमपी गारबेज; }   

- तालिका का पता चलता है JSF का हिस्सा:

  & lt; p: dataTable var = "garbage" value = "# {resultsController allGarbage} "में paginator =" true "पंक्तियों =" 10 "paginatorTemplate =" {} {CurrentPageReport FirstPageLink} {} {PreviousPageLink PageLinks} {} {NextPageLink LastPageLink} {RowsPerPageDropdown} "rowsPerPageTemplate =" 5,10,15 "& gt; & Lt; p: स्तंभ & gt; & Lt; f: पहलू नाम = "हेडर" & gt; & Lt; h: आउटपुटटैक्स्ट मान = "फाइलनाम" / & gt; & Lt; / च: पहलू & gt; & Lt; h: आउटपुट टेक्स्ट वैल्यू = "# {garbage.filename}" / & gt; & Lt; / p: स्तंभ & gt; & Lt; p: स्तंभ & gt; & Lt; f: पहलू नाम = "हेडर" & gt; & Lt; h: आउटपुट टेक्स्ट वैल्यू = "विवरण" / & gt; & Lt; / च: पहलू & gt; & Lt; h: आउटपुट टेक्स्ट वैल्यू = "# {garbage.description}" / & gt; & Lt; / p: स्तंभ & gt; & Lt; p: स्तंभ & gt; & Lt; f: पहलू नाम = "हेडर" & gt; & Lt; h: आउटपुटटेक्स्ट मान = "अपलोड तिथि" / & gt; & Lt; / च: पहलू & gt; & Lt; h: आउटपुट टेक्स्ट वैल्यू = "# {garbage.uploadDate}" / & gt; & Lt; / p: स्तंभ & gt; & Lt; / p: DataTable & gt;   

-इस कामयाब सेम कि JSF पेज साथ सूचना का आदान:

  @ManagedBean @RequestScoped सार्वजनिक वर्ग ResultsController {निजी ISearchEJB searchEJB @EJB; निजी कचरा कचरा; सार्वजनिक सूची & lt; कूड़ा & gt; GetAllGarbage () {खोज खोज EJB.findAllGarbage (); } सार्वजनिक कूड़ा मिल गारबेज () {वापसी कचरा; } सार्वजनिक शून्य सेट गारबेज (कूड़ा कचरा) {this.garbage = कचरा; }   

त्रुटि कहते हैं:

चेतावनी: StandardWrapperValve [सर्वलेट चेहरे]: PWC1406: Servlet.service () सर्वलेट के लिए चेहरे सर्वलेट फेंक दिया अपवाद java.lang .NumberFormatException: इनपुट स्ट्रिंग के लिए: "फाइलनाम"

मुझे नहीं पता कि फ़ाइल नाम में क्या गलत है।

----------- -------------------------अद्यतन------------------------ ------------

मैंने इसे JSF बदल दिया है, और अब मैं त्रुटि को नहीं देखता हूं। मैं था तालिका डेटा लेकिन देखना खाली:

  & lt; p: DataTable var = "कचरा" मान = "# {resultsController.allGarbage}" में paginator = "true" पंक्तियों = "10" paginatorTemplate = "{} {CurrentPageReport FirstPageLink} {} {PreviousPageLink PageLinks} {} {NextPageLink LastPageLink} {RowsPerPageDropdown}" rowsPerPageTemplate = "5,10,15" & gt; & Lt; p: स्तंभ & gt; & Lt; f: पहलू नाम = "हेडर" & gt; & Lt; h: आउटपुटटैक्स्ट मान = "फाइलनाम" / & gt; & Lt; / च: पहलू & gt; & Lt; h: आउटपुट टेक्स्ट वैल्यू = "# {कचरा [4]}" / & gt; & Lt; / p: स्तंभ & gt; & Lt; p: स्तंभ & gt; & Lt; f: पहलू नाम = "हेडर" & gt; & Lt; h: आउटपुट टेक्स्ट वैल्यू = "विवरण" / & gt; & Lt; / च: पहलू & gt; & Lt; h: आउटपुट टेक्स्ट वैल्यू = "# {कचरा [3]}" / & gt; & Lt; / p: स्तंभ & gt; & Lt; p: स्तंभ & gt; & Lt; f: पहलू नाम = "हेडर" & gt; & Lt; h: आउटपुटटेक्स्ट मान = "अपलोड तिथि" / & gt; & Lt; / च: पहलू & gt; & Lt; h: आउटपुटटेक्स्ट मान = "# {कचरा [6]}" / & gt; & Lt; / p: स्तंभ & gt; & Lt; / p: DataTable & gt;    

समस्या इस तथ्य से उत्पन्न होती है कि एक प्रश्न जैसे < पूर्व> SELECT g.filename, g.description, कचरा से g.uploadDate

फाइलनाम, विवरण और अपलोड डेट के साथ एक वस्तु [] देता है तत्वों।

यदि आप उन्हें ऑब्जेक्ट गुणों के रूप में एक्सेस करना चाहते हैं (जैसा कि आप जेएसएफ में करते हैं), आपको इसके बजाय पूर्ण ऑब्जेक्ट के लिए क्वेरी की आवश्यकता है:

  कचरा से चयन करें g G    

Comments