2010-11-24 19 views
7

मैं वर्तमान में एक सिस्टम माइग्रेशन पर काम कर रहा हूं (जेपीए 1 के साथ हाइबरनेट 3.2.2.जीए से जेपीए 2 के साथ 3.6 हाइबरनेट करने के लिए। माइग्रेशन स्वयं बहुत आसान है, ऐसा करने के लिए कोई बड़ा अपडेट नहीं है (असल में, मुझे नहीं लगता ।।हाइबरनेट 3.5 या 3.6 बिना किसी एनोटेशन के समर्थन के?

Caused by: java.lang.UnsupportedOperationException: any not supported yet 
    at org.hibernate.ejb.metamodel.AttributeFactory.determineAttributeMetadata(AttributeFactory.java:452) 
    at org.hibernate.ejb.metamodel.AttributeFactory.buildAttribute(AttributeFactory.java:93) 
    at org.hibernate.ejb.metamodel.MetadataContext.wrapUp(MetadataContext.java:183) 
    at org.hibernate.ejb.metamodel.MetamodelImpl.buildMetamodel(MetamodelImpl.java:66) 
    at org.hibernate.ejb.EntityManagerFactoryImpl.<init>(EntityManagerFactoryImpl.java:84) 
    at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:902) 
    at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:74) 
    at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:225) 

तो इसका मतलब है कि: किसी भी सब पर है कि हाइबरनेट कार्यावधि में एक अपवाद फेंकता है, @Any टिप्पणियों के बारे में शिकायत कर रहा है है)

समस्या का सामना करना पड़ रहा हूँ

स्टैकट्रेस पीछा कर रहा है @Any या @ManyToAny अब हाइबरनेट द्वारा समर्थित नहीं हैं। यह अजीब है क्योंकि प्रलेखन (3.3 से 3.6 तक) का उल्लेख है कि @ किसी भी एनोटेशन और AFAIK का उपयोग कैसे करें, कोई हाइबरनेट संस्करण नहीं है जो इस एनोट को कम करता है समझना।

मैंने हाइबरनेट 3.5 स्रोत कोड की जांच की है और @ किसी भी एनोटेशन जांच भी है, इसलिए यह भी एक ही अपवाद फेंकता है।

क्या आपके पास इस मुद्दे के लिए कोई कामकाज है?

बहुत बहुत धन्यवाद! अपवाद आप देख रहे हैं परहेज

hibernate.ejb.metamodel.generation=disabled 

यह मेटामॉडल पीढ़ी को अक्षम करना चाहिए,:

+1

वे समर्थित नहीं हैं केवल यदि आप जेपीए का उपयोग इंटरफेस। 'सत्र कारखाना' के साथ वे ठीक काम करते हैं। – axtavt

+0

यह अजीब बात है ... यह जेपी 1 के साथ हाइबरनेट 3.2 पर काम करता है। जाओ पता लगाओ। मैं अब 3.2/के साथ चिपकूँगा =/ –

+2

यह बहुत स्पष्ट है। जेपीए 2 में मेटामोडेल समर्थन शामिल है। चूंकि यह स्पष्ट नहीं है कि मेटामोडेल में '@ किसी भी' विशेषता का प्रतिनिधित्व कैसे किया जाए, उन्हें ऐसे गुणों को प्रतिबंधित करना होगा (इसे स्टैकट्रैक से लिया जा सकता है)। – axtavt

उत्तर

5

आप अपने हाइबरनेट गुण में जोड़ने के लिए प्रयास करें चाहेंगे। (संपादित संपत्ति के मूल्य 'अक्षम' कहने के लिए के रूप में टिप्पणी में कहा)

+0

धन्यवाद पार्टनॉन, मैं अगले हफ्ते कोशिश करूंगा और यहां परिणाम की रिपोर्ट करूंगा। –

+1

आपके उत्तर में एक छोटा सा संशोधन partenon: यह "अक्षम" के बजाय "अक्षम" है। इसके अलावा यह वास्तव में काम करता है। फिर से धन्यवाद! –

1

या, यदि आप hibernate.properties उपयोग नहीं कर रहे हैं, अपने persistence.xml को <property name="hibernate.ejb.metamodel.generation" value="disabled" /> जोड़ने

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