2013-08-05 7 views
11

मैं जेपीए 2.0 और हाइबरनेट 4.2 कार्यान्वयन के लिए ग्रहण Facets का उपयोग कर रहा हूँ। मुझे लगता है कि मुझे याद है कि पिछले प्रोजेक्ट में मुझे persistence.xml में एंटीटी बीन पंजीकृत नहीं करना पड़ेगा। क्या मैं गलत हूँ?प्रत्येक इकाई बीन persistence.xml में पंजीकृत होना चाहिए?

@Entity साथ (इस मामले Pub.java में) एक POJO टिप्पणी करना ग्रहण मार्कर/समस्या को ध्यान में रखते निम्न त्रुटि फेंक देगा:

Class "com.jacky.webapp.model.Pub" is managed, but is not listed in the persistence.xml file Pub.java /webapp/src/main/java/com/jacky/webapp/model  

कोई सुराग? धन्यवाद।

+0

आपकी पिछली परियोजना में हाय जहां आप 'स्प्रिंग ओआरएम' का उपयोग कर रहे हैं? – iNan

+0

नहीं, मैंने नहीं किया। आम तौर पर, प्रत्येक ईंटिटी बीन जावा ईई 6 के साथ पंजीकृत होना चाहिए और यह संबंधित जेएसआर जेपीए कार्यान्वयन है? – feder

+0

इस उत्तर को जांचें: http://stackoverflow.com/a/21622259/1875434 – abbas

उत्तर

1

जेपीए में आपको persistence.xml नामक फ़ाइल को संकलित करना होगा जहां आप हाइबरनेट को बताएंगे कि कौन से वर्ग आपके ओआरएम द्वारा प्रबंधित किए जाएंगे।
चेक this question और उसके स्वीकार किए जाते हैं जवाब

पहले से ही यहाँ लिखा समाधान है
+1

बेलबाक्स, मैंने देखा, कि आप ऑब्जेक्ट-रिलेशनल प्रतिबाधा को दूर करने के लिए कक्षाओं को टैग कर सकते हैं। हालांकि, यह घोषणात्मक है, और मैं एनोटेशन शैली को लागू करना चाहता हूं। मुझे अभी एक सहकर्मी से पुष्टि मिली है, कि मेरी धारणा/स्मृति सच है। यदि आप एनोटेशन का उपयोग करते हैं तो peristence.xml या orm.xml में कक्षाओं को मैन्युअल रूप से पंजीकृत करने की आवश्यकता नहीं है। संभवतः, यह त्रुटि एक ग्रहण (4.3 केप्लर) त्रुटि होना चाहिए। – feder

+0

लेकिन क्या आपका कोड रन के दौरान ठीक काम करता है? मैंने सोचा कि आपको निष्पादन के दौरान समस्या है। शायद आप सही हैं और केवल एक ग्रहण सत्यापनकर्ता समस्या है –

+0

हां, मैन्युअल रूप से तैनात किए जाने पर ठीक काम करता है (ग्रहण गलत वार्स को तैनात करने से इंकार कर देता है)। हाँ, एक केप्लर त्रुटि की तरह दिखता है। मैं इस दिन बाद में जूनो के साथ प्रयास करता हूं। – feder

33

के रूप में:

आप जेपीए परियोजना गुण की जाँच करें और "लगातार वर्ग प्रबंधन" खंड में "स्वचालित रूप से एनोटेट वर्गों की खोज" का चयन कर लें। ऐसा करने से आपके उपयोग के मामले के लिए सही सत्यापन प्रदान करना चाहिए।

+0

बहुत बहुत धन्यवाद, मेरे लिए काम किया। - @ कोटेव –

+0

धन्यवाद, मेरे लिए भी काम किया – Toren

+0

जो जादू बना दिया !! धन्यवाद !! –

0

जब आप प्रोजेक्ट बनाते हैं तो यह संभव है, आपने "जावा प्रोजेक्ट" के बजाय "जेपीए प्रोजेक्ट" चुना है। यदि आपको "जावा प्रोजेक्ट" दिखाई नहीं देता है, तो "जावा" को देखने के लिए "अन्य" और विज़ार्ड प्रकार "जावा" के अंतर्गत "अन्य" का पालन करें।

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