REQUIRED
प्रचार के मामले में जब कॉलर विधि स्वयं लेनदेन करता है तो वर्तमान विधि लेनदेन गुणों को बंद कर देती है (उदाहरण के लिए रोलबैक के लिए) यदि वे अलग हैं?वसंत @ ट्रांस्सेक्शन एनोटेशन गुण प्राथमिकता/विरासत
चित्रण:
Class A {
@Transactional(propagation = Propagation.REQUIRED,
rollbackFor = { SomeException.class})
void foo() {
try {
b.bar();
} catch (OtherException e) {
// is the transaction marked as rollback-only at this point ?
}
}
}
Class B {
@Transactional(propagation = Propagation.REQUIRED,
rollbackFor = { OtherException.class})
void bar() {
[...]
}
}
संपादित:
ठीक है, मैं गुंजाइश जवाब से बाहर तुच्छ से बचना चाहते हैं, तो स्पष्ट हो, I'am वसंत प्रचार से निपटने के बारे में पता था।
PROPAGATION_REQUIRED
जब प्रचार सेटिंग PROPAGATION_REQUIRED है:
आप नहीं कर रहे हैं तो नीचे दिए गए दस्तावेज के प्रासंगिक हिस्सा है, मैं सिर्फ ऊपर मेरी उदाहरण के बारे में पहले भाग स्पष्ट करना चाहते हैं , एक लॉजिकल प्रत्येक विधि के लिए लेनदेन का दायरा बनाया गया है जिस पर सेटिंग लागू है। प्रत्येक ऐसे लॉजिकल ट्रांजैक्शन स्कोप रोलबैक-केवल स्थिति को अलग-अलग लेनदेन स्कोप आंतरिक लेनदेन क्षेत्र से तार्किक रूप से स्वतंत्र होने के साथ निर्धारित कर सकता है। पाठ्यक्रम, मानक PROPAGATION_REQUIRED व्यवहार के मामले में, इन सभी स्कॉप्स को उसी भौतिक लेनदेन में मैप किया जाएगा। तो आंतरिक लेन-देन के दायरे में रोलबैक-केवल मार्कर सेट को बाहरी लेनदेन के वास्तव में प्रतिबद्ध होने का मौका प्रभावित करता है (जैसा कि आप इसे उम्मीद करेंगे)।
हालांकि, इस मामले में जहां एक आंतरिक लेनदेन गुंजाइश रोलबैक-केवल मार्कर सेट में, बाहरी लेन-देन रोलबैक पर ही तय नहीं किया गया है, और इसलिए रोलबैक (चुपचाप भीतरी लेनदेन दायरे से चालू होने वाले) अप्रत्याशित है । संबंधित अप्रत्याशित रोलबैक अपवाद उस बिंदु पर फेंक दिया गया है। यह व्यवहार की अपेक्षा की जाती है ताकि लेनदेन के कॉलर को कभी भी पर गुमराह नहीं किया जा सके, मान लीजिए कि वास्तव में ऐसा नहीं होने पर एक प्रतिबद्धता की गई थी। इसलिए यदि आंतरिक लेनदेन (जिसमें बाहरी कॉलर को पता नहीं है) चुपचाप केवल लेन-देन के रूप में लेनदेन को चिह्नित करता है, बाहरी कॉलर अभी भी प्रतिबद्धता को कॉल करता है। बाहरी कॉलर को अप्रत्याशित रोलबैक अपवाद प्राप्त करने की आवश्यकता है ताकि स्पष्ट रूप से इंगित किया जा सके कि रोलबैक इसके बजाए किया गया था।
मेरा प्रश्न यह रूप में reworded जा सकता है:
तार्किक लेनदेन गुंजाइश लेनदेन गुण धारण करता है?
आप उल्लेख कर सकते हैं http://stackoverflow.com/questions/ 8490852/वसंत-लेनदेन-अलगाव-प्रसार/32223597 # 32223597 एकाधिक परिदृश्यों के साथ विभिन्न प्रचार के लिए –