उत्पन्न करने के लिए मेवेन के साथ हाइबरनेट-टूल्स को कॉन्फ़िगर कैसे करें कोई भी मुझे बता सकता है कि स्वचालित रूप से जेनरेट किए गए हाइबरनेट में मैपिंग .hbm.xml फ़ाइलों से पहले मैवेन को कैसे मजबूर किया जाए पैकेज पथ के साथ .cfg.xml फ़ाइल?hibernate.cfg.xml, * .hbm.xml, POJOs और DAO
मेरे सामान्य विचार मैं Maven के माध्यम से हाइबरनेट-उपकरणों का उपयोग करने के लिए अपने आवेदन के लिए हठ परत जनरेट करना चाहते हैं, है। इसलिए, मुझे hibernate.cfg.xml की आवश्यकता है, फिर मेरे my_table_names.hbm.xml और अंत में पीओजेओ उत्पन्न हुआ।
<mapping resource="MyTableName.hbm.xml" />
तो बड़ा सवाल यह है:: फिर भी, hbm2java
लक्ष्य के रूप में मैं src/main/resources/package/path/
फ़ोल्डर में * .hbm.xml फ़ाइलें डाल लेकिन hbm2cfgxml
केवल तालिका नाम से मानचित्रण फ़ाइलें निर्दिष्ट करता है, यानी काम नहीं करेगा कैसे कर सकते हैं मैं hbm2cfgxml
कॉन्फ़िगर करते हैं ताकि hibernate.cfg.xml नीचे दिखाई देता है:
<mapping resource="package/path/MyTableName.hbm.xml" />
मेरे pom.xml इस समय इस तरह दिखता है:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>hibernate3-maven-plugin</artifactId>
<version>2.2</version>
<executions>
<execution>
<id>hbm2cfgxml</id>
<phase>generate-sources</phase>
<goals>
<goal>hbm2cfgxml</goal>
</goals>
<inherited>false</inherited>
<configuration>
<components>
<component>
<name>hbm2cfgxml</name>
<implemetation>jdbcconfiguration</implementation>
<outputDirectory>src/main/resources/</outputDirectory>
</component>
</components>
<componentProperties>
<packagename>package.path</packageName>
<configurationFile>src/main/resources/hibernate.cfg.xml</configurationFile>
</componentProperties>
</configuration>
</execution>
</executions>
</plugin>
और फिर दूसरा प्रश्न: क्या hbm2java
निष्पादित करने से पहले लक्षित फ़ोल्डर में संसाधनों की प्रतिलिपि बनाने के लिए मेवेन को बताने का कोई तरीका है? फिलहाल मैं
mvn clean resources:resources generate-sources
का उपयोग कर रहा हूं, लेकिन एक बेहतर तरीका होना चाहिए।
किसी भी मदद के लिए धन्यवाद।
अद्यतन:
@Pascal: आप आपकी मदद के लिए धन्यवाद। मैपिंग का मार्ग अब ठीक काम करता है, मुझे नहीं पता कि पहले क्या गलत था। शायद डेटाबेस कॉन्फ़िगरेशन पढ़ने के दौरान hibernate.cfg.xml को लिखने के साथ कुछ समस्या है (हालांकि फ़ाइल अपडेट हो जाती है)।
मैंने फ़ाइल hibernate.cfg.xml को हटा दिया है, इसे डेटाबेस.प्रोपर्टीज के साथ बदल दिया है और hbm2cfgxml
और hbm2hbmxml
लक्ष्यों को चलाया है। मैं अब उन लक्ष्यों में outputDirectory
और न ही configurationfile
का उपयोग नहीं करता हूं।
परिणामस्वरूप hibernate.cfg.xml
और सभी *.hbm.xml
मेरे लक्ष्य/हाइबरनेट 3/जेनरेट-मैपिंग/फ़ोल्डर में जेनरेट किए जा रहे हैं, जो डिफ़ॉल्ट मान है। तब मैं निम्नलिखित के साथ hbm2java
लक्ष्य अद्यतन:
<componentProperties>
<packagename>package.name</packagename>
<configurationfile>target/hibernate3/generated-mappings/hibernate.cfg.xml</configurationfile>
</componentProperties>
लेकिन तब मैं निम्नलिखित हो:
[INFO] --- hibernate3-maven-plugin:2.2:hbm2java (hbm2java) @ project.persistence ---
[INFO] using configuration task.
[INFO] Configuration XML file loaded: file:/C:/Documents%20and%20Settings/mmm/workspace/project.persistence/target/hibernate3/generated-mappings/hibernate.cfg.xml
12:15:17,484 INFO org.hibernate.cfg.Configuration - configuring from url: file:/C:/Documents%20and%20Settings/mmm/workspace/project.persistence/target/hibernate3/generated-mappings/hibernate.cfg.xml
12:15:19,046 INFO org.hibernate.cfg.Configuration - Reading mappings from resource : package.name/Messages.hbm.xml
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.codehaus.mojo:hibernate3-maven-plugin:2.2:hbm2java (hbm2java) on project project.persistence: Execution hbm2java of goal org.codehaus.mojo:hibernate3-maven-plugin:2.2:hbm2java failed: resource: package/name/Messages.hbm.xml not found
मैं इससे कैसे निपटते हैं? बेशक मैं जोड़ सकता है:
<outputDirectory>src/main/resources/package/name</outputDirectory>
hbm2hbmxml
लक्ष्य के लिए है, लेकिन मुझे लगता है कि यह सबसे अच्छा तरीका नहीं है, या यह क्या है? वहाँ सभी उत्पन्न कोड और संसाधनों src/
फ़ोल्डर से दूर रखने के लिए एक रास्ता है?
मुझे लगता है, इस दृष्टिकोण के लक्ष्य को मेरी src/मुख्य/जावा या/संसाधन फ़ोल्डर में किसी भी स्रोत उत्पन्न करने के लिए है, लेकिन लक्ष्य फ़ोल्डर में उत्पन्न कोड रखने के लिए नहीं है।जैसा कि मैं आम तौर पर इस दृष्टिकोण से सहमत हूं, मैं अंततः hbm2dao
निष्पादित करना जारी रखूंगा और प्रोजेक्ट को व्यापार परत से जेनरेट किए गए दृढ़ता परत घटक के रूप में उपयोग करने के लिए पैकेजिंग करना चाहता हूं। क्या यह भी तुम्हारा मतलब है?
आपकी टिप्पणी पास्कल के लिए धन्यवाद। मैंने निष्पादन को संसाधन-संसाधनों में स्थानांतरित कर दिया, टाइपो को सही किया। 1. हाइबरनेट-उपकरण के लिए उपयोगकर्ता और पासवर्ड को कॉन्फ़िगर कैसे करना चाहिए यदि hibernate.cfg.xml (या hibernate.properties) द्वारा नहीं? यहां विचार है, hibernate.cfg.xml पढ़ा जा रहा है, और अद्यतन किया गया है यदि डेटा मॉडल में कोई भी बदलाव किया गया है। क्या कोई और इष्टतम दृष्टिकोण है? अन्य सभी विकल्प मुझे अलग सिंटैक्स के साथ 2 अलग-अलग फ़ाइलों में एक ही कॉन्फ़िगरेशन को बनाए रखने के लिए मजबूर करते हैं। मेरे दूसरे प्रश्न के बारे में, आपके उत्तर के लिए भी धन्यवाद। पथ/से/मैपिंग के बारे में मुख्य प्रश्न अभी भी खुला है। – mmm
@mmm: मैंने अपना जवाब अपडेट कर लिया है, इसे आज़माएं। –
आपकी मदद के लिए धन्यवाद: यह ठीक काम किया। मैंने अपना प्रश्न अपडेट किया। – mmm