2012-06-08 18 views
7

के लिए जेपीए एकाधिक दृढ़ता इकाइयों मैंने इसके लिए उत्तर खोजे हैं लेकिन इस सवाल को इस बहुत ही उपयुक्त समुदाय से पूछने में सक्षम नहीं हैं!डीवी/क्यूए/मंच/उत्पादन

  1. मेरे पास एक स्टैंडअलोन जावा एप्लिकेशन है जो कई वातावरणों में तैनात हो जाता है: देव, क्यूए, मंच, उत्पादन। चूंकि इस तरह के प्रत्येक वातावरण में अपना डेटासोर्स/डीबी होता है और ऐसी संपत्ति फाइलें होती हैं जो विभिन्न गुणों को नियंत्रित करती हैं, इस पर निर्भर करती है कि एप्लिकेशन किस पर्यावरण से चल रहा है। जैसे, मेरे persistence.xml में मैंने देव के लिए एक स्थिरता इकाई परिभाषित की है। उसी फ़ाइल में, मैं अन्य वातावरण के लिए दृढ़ता इकाइयों को भी परिभाषित करना चाहता हूं। ऐसा करने पर, ग्रहण (इंडिगो - नवीनतम) निम्नानुसार शिकायत करता है: "एकाधिक दृढ़ता इकाइयों को परिभाषित किया गया - केवल पहली दृढ़ता इकाई को पहचाना जाएगा"। मैं मानता हूं कि मैंने जो किया है वह कानूनी है और यह एक ग्रहण मुद्दा है .. क्या कोई पुष्टि कर सकता है? साथ ही, क्या यह मेरे वर्तमान सेटअप को दिए जाने वाले सर्वोत्तम प्रथाओं को निर्देशित करेगा?
  2. मुझे लगता है कि @Entity एनोटेशन के साथ चिह्नित किसी भी इकाई बीन को स्वचालित रूप से persistence.xml फ़ाइल में स्पष्ट रूप से परिभाषित किए बिना उठाया जाएगा: <class>com.mycompany.model.MyEntityBean</class>। अगर मैं फ़ाइल में इकाई वर्ग के स्पष्ट समावेशन को छोड़ देता हूं, तो इकाई बीन - हालांकि एनोटेटेड - एक त्रुटि फेंकता है: "कक्षा" com.mycompany.model.MyEntityBean "मैप किया गया है, लेकिन किसी भी दृढ़ता इकाई में शामिल नहीं है" मैंने क्या गलत किया है?
  3. मेरा अंतिम प्रश्न डीबी प्रमाण-पत्रों के संबंध में है: क्या मेरे डीबी प्रमाण-पत्रों को सादा पाठ में persistence.xml फ़ाइल में डालने का सबसे अच्छा अभ्यास है? क्या इसके लिए कोई सुरक्षित विकल्प हैं?

समुदाय धन्यवाद!

p.s - मैं जेपीए विक्रेता के रूप में एक्लिप्ससेंक का उपयोग कर रहा हूं कि इससे कोई फर्क नहीं पड़ता ??

यहाँ मेरी persistence.xml का एक उदाहरण

<?xml version="1.0" encoding="UTF-8"?> 
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"> 
    <persistence-unit name="Development"> 
     <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider> 
     <class>com.mycompany.model.MyEntityBean</class> 
     <properties> 
      <property name="javax.persistence.jdbc.driver" value="com.ibm.db2.jcc.DB2Driver" /> 
      <property name="javax.persistence.jdbc.url" value="jdbc:db2://xxxxxxx" /> 
      <property name="javax.persistence.jdbc.password" value="xxxxxx" /> 
      <property name="javax.persistence.jdbc.user" value="xxxxxxxx" /> 
     </properties> 
    </persistence-unit> 
    <persistence-unit name="QA"> 
     <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider> 
     <class>com.mycompany.model.MyEntityBean</class> 
     <properties> 
      <property name="javax.persistence.jdbc.driver" value="com.ibm.db2.jcc.DB2Driver" /> 
      <property name="javax.persistence.jdbc.url" value="jdbc:db2://xxxxxxx" /> 
      <property name="javax.persistence.jdbc.password" value="xxxxxx" /> 
      <property name="javax.persistence.jdbc.user" value="xxxxxxxx" /> 
     </properties> 
    </persistence-unit> 
</persistence>  
+0

क्या आप अपनी persistence.xml सामग्री जोड़ सकते हैं, इससे सभी को समझने में बेहतर मदद मिलेगी। –

+0

हाय नयन, मैंने अपने persistence.xml धन्यवाद का एक छीन लिया है! – ustad

उत्तर

4
  1. है "एक से अधिक दृढ़ता इकाइयों में परिभाषित किया गया - केवल पहले हठ इकाई पहचाना जाएगा" ग्रहण (डाली) मुद्दा है। विषय के बारे में अधिक जानकारी आप bug 231527 से पा सकते हैं।

  2. क्योंकि आपके पास स्टैंडअलोन जावा एसई एप्लीकेशन है, संस्थाओं को persistence.xml में सूचीबद्ध किया जाना चाहिए। विनिर्देश में यह स्पष्ट किया जाता है इस प्रकार है:

 To insure the portability of a Java SE application, it is necessary 
     to explicitly list the managed persistence classes that are included 
     in the persistence unit using the class element of the persistence.xml 
     file. 
  1. आप सादे पाठ के रूप पासवर्ड नहीं करना चाहते हैं, तो विकल्प के बारे में कुछ जानकारी EclipseLink documentation से पाया जा सकता है।
+0

जानकारी Mikko के लिए धन्यवाद! मैं अप-वोट करता था लेकिन मैं अभी तक योग्य नहीं हूं :) – ustad

+0

धन्यवाद मिक्को, मैंने जवाब स्वीकार कर लिया है। ऐसा लगता है कि कई दृढ़ता इकाइयों को वास्तव में सम्मानित किया जा रहा है और यह ग्रहण जेपीए प्लगइन में अंतर्निहित है जो शिकायत कर रहा है – ustad

1

आप निम्न कार्य करके गलत चेतावनी को बंद कर सकते हैं। ये निर्देश ग्रहण लुना के लिए हैं।

Project Properties => JPA => Errors/Warnings 

चेक Enable project specific settings

Ignore को Project समूह

विस्तृत बदलें Multiple persistence units defined: