मेरे पास मॉड्यूल ए और मॉड्यूल बी है जिसमें दोनों जेपीए एनोटेटेड क्लासेस हैं। मॉड्यूल बी एक इकाई परीक्षण है कि ए दोनों मॉड्यूल ठीक, क्रम निर्भरता, ठीक स्थापित कर रहे हैं संकलन से उन संस्थाओं के एक जोड़े में खींचती है, लेकिन मैं निम्नलिखित त्रुटि मिलती है जब मैं इकाई परीक्षण चलाने का प्रयास:एक अलग मॉड्यूल में इकाइयों के लिए स्कैन करने के लिए हाइबरनेट को कॉन्फ़िगर कैसे करें
java.lang.IllegalArgumentException: Unknown entity: MyClassHere
Caused by: org.hibernate.MappingException: Unknown entity: MyClassHere
यह EntityManager.merge कॉल में होता है।
चूंकि मॉड्यूल बी में सभी हाइबरनेट कॉन्फ़िगरेशन फ़ाइलें आदि हैं, मुझे लगता है कि यह बस यह नहीं उठा रहा है कि ए से मेरी कक्षा एक इकाई है।
<property name="packagesToScan">myNamespace.*</property>
फिर
:
मैं
<exclude-unlisted-classes>false</exclude-unlisted-classes>
persistence.xml को hibernate.cfg.xml में मैं जोड़ा निम्नलिखित जोड़ने की कोशिश की
<property name="packagesToScan">
<array>
<value>myNamespace.*</value>
</array>
</property>
जो मुझे एक त्रुटि दे दी है "संपत्ति" की सामग्री शून्य से मेल खाना चाहिए। फिर मैंने कोशिश की:
<mapping class="myNamespace.*" />
मुझे क्या याद आ रही है?
संपादित करें: एक बात जिसे मैं उल्लेख करना भूल गया था, यह महत्वपूर्ण हो सकता है कि दो मॉड्यूल अलग परियोजनाओं के रूप में स्थापित किए गए हैं (मैं ग्रहण का उपयोग कर रहा हूं) ताकि निर्देशिका संरचना अलग हो। रन टाइम निर्भरता सभी ठीक से सेट की गई हैं, लेकिन चूंकि .class फ़ाइलें अलग-अलग निर्देशिकाओं में समाप्त होती हैं, इसलिए मुझे लगता है कि हाइबरनेट उनको स्कैन नहीं कर सकता है।
से उदाहरण स्रोत कोड देखें? मेरे पास एक समान सेट अप है, जो [setPackagesToScan] (http://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/orm/jpa/LocalContainerEntityManagerFactoryBean.html# का उपयोग कर काम कर रहा है। setPackagesToScan-java.lang.String ...-) [LocalContainerEntityManagerFactoryBean] में प्रदान किया गया ओवरराइड (http://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/orm/jpa/LocalContainerEntityManagerFactoryBean .html)। –
क्या आप ' myNamespace ' (यानी '। *' के बिना) के साथ प्रयास कर सकते हैं: इस संपत्ति को स्कैन करने के लिए कक्षाओं के मूल पैकेज को इंगित करना चाहिए। जैसे यदि वर्ग 'मायइन्टिटी' पैकेज में है 'my.package।MyEntity', आप ' my.package ' –
Tunaki
लिखेंगे, यह काम नहीं किया ... – ventsyv