2010-01-04 11 views
6

मेरे persistence.xml 2 हठ-इकाइयां हैं। उनमें से प्रत्येक में कई <class> तत्व हैं।हमें <persistence-unit> तत्व के अंदर कक्षा निर्दिष्ट करने की आवश्यकता क्यों है?

मैंने सोचा था कि हम कुछ हठ इकाई से संबंधित सभी वर्गों का उल्लेख करना होगा। लेकिन मैं गलती से नई इकाई के लिए कक्षा-तत्व निर्दिष्ट करना भूल गया लेकिन कार्यक्रम ने इसके बिना भी ठीक काम किया। तब मैंने सभी वर्ग-तत्वों को हटा दिया और सब कुछ ठीक काम किया। तो, हमें इसकी आवश्यकता क्यों है?

नमूना कोड:

<persistence-unit name="JiraManager" transaction-type="RESOURCE_LOCAL"> 
    <class>chartdemo.model.domain.Category</class> 
</persistence-unit> 

उत्तर

7

आप persistence.xml फ़ाइल अपने हठ प्रबंधक में कक्षाएं निर्दिष्ट नहीं किया है, तो स्थान जहां persistence.xml फ़ाइल मौजूद है (जार फ़ाइल, वर्ग निर्देशिका) में सभी इकाई वर्गों का प्रबंधन करेगा।

लिस्टिंग कक्षाएं आप दृढ़ता इकाई में संस्थाओं और उन्हें समूह का चयन करने के लिए लचीलापन देता है। आपके पास बेहतर नियंत्रण हो सकता है जिसमें एक निरंतर निरंतर इकाई नाम शामिल है - आप अन्य जार इत्यादि से भी शामिल हो सकते हैं।

इसलिए, अधिकांश मूलभूत मामलों में लिस्टिंग कक्षाएं अनावश्यक हैं, और अधिकांश जेपीए प्रत्यारोपण आपके लिए सभी संस्थाओं को खोजते हैं।

+0

मैंने पाया है कि हम केवल का उपयोग कर <को बाहर-असूचीबद्ध कर दिया जाएगा वर्गों> तत्व सभी इकाई वर्गों के प्रबंधन को रोका जा सकता है। – Roman

3

कुछ हठ प्रदाताओं (उदाहरण के लिए हाइबरनेट) इकाई वर्गों के लिए classpath स्कैन।

+0

यह मतलब यह है कि सामान्य मामले में हम दृढ़ता-इकाई के अंदर वर्ग तत्व नहीं जोड़ना चाहिए? – Roman

+0

हाँ (15 वर्ण अनुरोध) – Bozho

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