मैं एक वेब ऐप लिख रहा हूं जो एकाधिक उपयोगकर्ताओं का समर्थन करता है। H2 का उपयोग करके प्रत्येक उपयोगकर्ता का अपना डेटाबेस होता है। सभी डेटाबेस स्कीमा एक ही हैं।मल्टी-उपयोगकर्ता डेटासोडर्स - स्प्रिंग + हाइबरनेट
मैं इस एप्लिकेशन के लिए स्प्रिंग + हाइबरनेट का उपयोग करना चाहता हूं।
तो मैं उस उपयोगकर्ता के साथ किसी उपयोगकर्ता के डेटाबेस को कैसे जोड़ सकता हूं - शायद इसे HTTPSession में संबद्ध कर सकता हूं, और वसंत के सार RoutingDataSource का विस्तार कर सकता हूं? लेकिन क्या यह हाइबरनेट के कैश को प्रभावित नहीं करेगा? एक और तरीका है प्रत्येक डेटासोर्स के साथ सत्र फैक्ट्री रखना, भले ही प्रत्येक डेटास्रोत की स्कीमा एक जैसी हो ... इसलिए मैं इसे अपशिष्ट के रूप में देखता हूं।
किसी भी प्रकार डेटासेट को चुनने की आवश्यकता गतिशील होने की आवश्यकता है - उन्हें संदर्भ फ़ाइलों में पूर्व-कॉन्फ़िगर नहीं किया जा सकता है, क्योंकि प्रत्येक नए उपयोगकर्ता का अपना डेटाबेस बनाया जाएगा। क्या कोई मौजूदा ढांचा/समाधान है?
मुझे हाइबरनेट शर्ड्स के बारे में बहुत कुछ पता नहीं है, शायद यह काम करता है?
हाय पास्कल, आपके उत्तर के लिए धन्यवाद। सभी डेटाबेस में एक ही स्कीमा है, इसलिए इन सभी डेटाबेस के लिए एक सत्र फैक्ट्री ठीक रहेगी। हाइबरनेट में द्वितीय स्तर का कैश होता है, जिसमें अमान्य कैश डेटा हो सकता है यदि मैं 2 अलग-अलग डेटाबेस से 2 अद्वितीय इकाइयों को लोड करता हूं लेकिन एक ही आईडी के साथ। मुझे लगता है कि मैं डेटासोर्स को एचटीपीएसशन के साथ जोड़कर और एचटीपीएसशन में डेटासोर्स को थ्रेडलोकल में संलग्न करने के लिए एक इंटरसेप्टर का उपयोग करके इसे प्राप्त करने के लिए प्राप्त कर सकता हूं ताकि मेरा सारडेटा स्रोत प्रसंस्करण लेनदेन के लिए सही डीएस प्राप्त कर सके। केन DeLong लेख के लिए – Dzhu
+1 - यह मुझे कुछ सिरदर्द बचाया :-) – opyate