मैं ऑब्जेक्ट स्तर (डेटाबेस स्तर पर) पर लेनदेन को संभालने का सबसे अच्छा तरीका खोजने का प्रयास कर रहा हूं। संक्षिप्त उदाहरण: 4 ऑब्जेक्ट्स ए, बी, सी और डी। ए लेनदेन शुरू करता है और बी और सी में कॉल विधियों को शुरू करता है। इस लेनदेन में सी भी कॉल कर रहा है। बुलाए जाने वाले तरीकों को हमेशा इस लेनदेन में भाग लेने की आवश्यकता नहीं है, लेकिन खुद को भी बुलाया जा सकता है। क्या ऑब्जेक्ट स्तर पर लेनदेन के प्रबंधन के लिए कोई पैटर्न हैं?ऑब्जेक्ट-स्तरीय लेनदेन प्रबंधन पैटर्न
मुझे वास्तव में कुछ नहीं मिला, इसलिए मैं इसके साथ आया: एक लेनदेन कॉन्टेक्स्ट का उपयोग करें जहां कोई लेनदेन लिस्टेनर्स पंजीकृत कर सकता है। यदि ट्रांज़ेक्शन कॉन्टेक्स्ट का उपयोग करके एक लेनदेन शुरू किया जाता है, तो यह प्रत्येक पंजीकृत श्रोताओं में चल रहे लेनदेन को इंजेक्ट करेगा, जो बदले में चल रहे लेनदेन का उपयोग करेगा या इसी तरह यदि आवश्यक हो तो भी एक को शुरू कर देगा। इस तरह मैं गीलेर का फैसला करने के लिए बहुत स्वतंत्र हूं, मैं अपने लेनदेन में भाग लेने वाली वस्तु चाहता हूं या नहीं।
समस्या है जब ऊपर की तरह वस्तु बुला चेन होने आता है। लेनदेन शुरू करते समय मुझे पता है कि बी और सी को लेनदेन में भाग लेना चाहिए ताकि मैं उन्हें लेनदेन कोन्टेक्स्ट में जोड़ूं। लेकिन डी के बारे में क्या? मैं नहीं वास्तव में बी और सी
के लिए चारों ओर TransactionContext पारित करने के लिए मैं अपने दृष्टिकोण पर कुछ इनपुट के साथ ही साबित पैटर्न के कुछ संकेत दिए गए (और भी बेहतर) की सराहना करेंगे चाहते हैं।
मुझे पता है कि वसंत और एप्लिकेशन सर्वर भी यह उपलब्ध करा रहे हैं, लेकिन मैं उनमें से किसी का भी उपयोग नहीं करना चाहता हूं। लेकिन वसंत लेनदेन प्रबंधक के सूचक के लिए धन्यवाद। मैं उसे पढ़ूंगा। – MicSim
जावा में यह एक सुंदर मानक पैटर्न है और कई पुस्तकालय इसे लागू करते हैं। – Loki
आप जेटीए या वसंत का उपयोग क्यों नहीं करना चाहेंगे? – Loki