2011-06-15 7 views
9

मैं अपनी सेवा परत में @ ट्रांसेक्शनल का उपयोग कर रहा हूं। यदि मैं @ ट्रांसेक्शनल (डिफ़ॉल्ट सेटिंग्स का उपयोग करके) के साथ दो अद्यतन सेवा विधियों को एनोटेट करता हूं और नियंत्रक विधि इन दोनों विधियों को अपनी क्रिया करने के लिए बुला रही है, तो क्या दोनों सेवा विधियां एक ही लेनदेन का उपयोग करती हैं?वसंत @ ट्रांज़ेक्शनल सीमाएं

ऐसा प्रतीत होता है कि वे नहीं करते हैं, और मैं इसकी पुष्टि की तलाश में हूं। यह मुझे दिखाई देगा कि एक ही लेनदेन का उपयोग करने के लिए दोनों विधियों को प्राप्त करने के लिए मुझे सेवा में तीसरी विधि लिखनी होगी, इसे @ ट्रान्सएक्शनल के साथ एनोटेट करना होगा, और वहां से मूल दो विधियों को कॉल करना होगा।

उत्तर

12

जो भी आपने कहा वह सही है, इस मुद्दे को हल करने के तरीके सहित। यह एक फेकाडे सेवा को लागू करने का एक अच्छा समय हो सकता है जो आपकी सभी अन्य सेवाओं का समन्वय करता है। इस तरह उपयोग की जाने वाली सेवाएं फेकाडे सेवा के लेनदेन में भाग लेंगी।

+1

यह बिल्कुल सही है। – Marcelo

+1

सहमत हैं, सिवाय इसके कि यह कोई दोष नहीं है, इसलिए मैं इसे "मुद्दा" नहीं कहूंगा। ऐसे समय होते हैं जब आप दो सेवा विधियों को कॉल करना चाहते हैं जो प्रत्येक अपने लेनदेन में भाग लेते हैं। उदाहरण के लिए, मान लीजिए कि एक सेवा कॉल खरीद को पूरा करता है और दूसरा यह तय करता है कि उपयोगकर्ता के ब्राउज़र विंडो के किनारे किन विज्ञापन दिखाना है, इस पर आधारित विज्ञापन। विज्ञापन तर्क विफल होने पर आप खरीद वापस नहीं करना चाहेंगे; आप फॉलबैक विज्ञापन के साथ एक खरीद पूर्ण स्क्रीन दिखाना चाहते हैं। पाठ्यक्रम के – gatkin

+0

@gatkin। मेरा मतलब था कि "ओपी क्या संघर्ष कर रहा था" – hvgotcodes

0

यह मेरे लिए सही लगता है। लेकिन आपको यह भी सोचना चाहिए कि लेनदेन प्रचार के लिए उन दो विधियों में डिफ़ॉल्ट सेटिंग्स होनी चाहिए या नहीं। here देखें और यह तय करें कि क्या यह 'आवश्यक' या 'समर्थन' होना चाहिए? उदाहरण: @ ट्रांस्सेक्शनल (प्रचार = प्रचार। REQUIRED)

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