2010-10-08 21 views
5

क्या हमारे पास एक ही डेटाबेस में इंगित एक से अधिक जेपीए दृढ़ता इकाइयां हैं, अलग-अलग जावा परियोजनाओं में और सर्वर पर तैनात एक ही समय में? एक ही समय में मेरा मतलब है, एक ही सेकेंड पर तैनात नहीं बल्कि एक साथ तैनात किया गया। मैं एक hsqldb डेटाबेस का उपयोग कर रहा हूँ।एकाधिक जेपीए दृढ़ता इकाइयां एक ही डेटाबेस पर इंगित करती हैं?

मेरे पास मेरे प्रोजेक्ट के लिए क्लाइंट-सर्वर मॉडल है। मेरे पास एक एकल एकीकृत डेटाबेस तालिका है जिसमें सर्वर डेटा भरता है और फिर क्लाइंट उस डेटा को किसी भिन्न प्रोजेक्ट में एक्सेस करता है। मैं सर्वर के माध्यम से डेटाबेस को सफलतापूर्वक पॉप्युलेट कर सकता हूं। लेकिन जब मैं क्लाइंट प्रोजेक्ट को तैनात करता हूं तो डेटाबेस से सभी डेटा मिटा दिया जाता है।

मैं दोनों दृढ़ता इकाइयों के लिए <property name="hibernate.hbm2ddl.auto" value="update" /> का उपयोग कर रहा हूं।

उत्तर

2

क्या हमारे पास एक ही डेटाबेस में इंगित एक से अधिक जेपीए दृढ़ता इकाइयां हैं, अलग-अलग जावा परियोजनाओं में और सर्वर पर तैनात एक ही समय में?

जब तक आपके पास दोनों परियोजनाओं में असंगत मैपिंग नहीं है, तो यह काम करना चाहिए। हालांकि आप दूसरे स्तर के कैशिंग का उपयोग करने में सक्षम नहीं होंगे।

लेकिन जब मैं क्लाइंट प्रोजेक्ट को तैनात करता हूं तो डेटाबेस से सभी डेटा मिटा दिया जाता है। (...)

नहीं वास्तव में व्यवहार मैं update करने के लिए hbm2ddl.auto सेट के साथ उम्मीद थी है कि लेकिन मैं नहीं जानता कि यदि व्यवहार में अच्छी तरह से कई के साथ (जब एक "क्लस्टर की तरह" वातावरण में प्रयुक्त परिभाषित किया गया है JVMs एक ही समय में एक अद्यतन कर रहा है)।

क्या होता है जब आप क्लाइंट को प्रारंभ करते समय क्लाइंट को तैनात करते हैं?

मेरे सलाह: देखने के लिए

  • सेटअप लॉगिंग क्या हो रहा है वास्तव में
  • आप एक ही संस्थाओं साझा कर रहे हैं, हो सकता है नहीं update क्लाइंट और सर्वर पर करते हैं (हालांकि यह shouldn ' अगर एक के बाद एक किया तो एक समस्या हो)।
  • आखिरकार, don't use update at all on production database
+0

आपका मतलब केवल ग्राहक को तैनात करना और सर्वर को बेरोज़गारी करना है? –

+0

@ वाशिष्ठ नहीं, मेरा मतलब क्लाइंट और सर्वर को तैनात करना है, लेकिन केवल एक बार स्कीमा के अपडेट होने के बाद। –

+0

@ पास्कल मैं वही काम कर रहा हूं। लेकिन यह काम नहीं कर रहा है :( –