अगर कुछ एक व्याख्या कर सकते हैं यह व्याख्या करना क्या है और हम इसका इस्तेमाल जब वास्तव में:@Transactional (प्रचार = Propagation.REQUIRED)
@Transactional(propagation=Propagation.REQUIRED)
धन्यवाद
अगर कुछ एक व्याख्या कर सकते हैं यह व्याख्या करना क्या है और हम इसका इस्तेमाल जब वास्तव में:@Transactional (प्रचार = Propagation.REQUIRED)
@Transactional(propagation=Propagation.REQUIRED)
धन्यवाद
जब प्रचार सेटिंग PROPAGATION_REQUIRED, एक तार्किक लेन-देन है प्रत्येक विधि के लिए स्कोप बनाया गया है जिस पर सेटिंग लागू होती है। प्रत्येक ऐसे लॉजिकल ट्रांजैक्शन स्कोप में व्यक्तिगत लेन-देन के दायरे से बाहरी लेनदेन का दायरा स्वतंत्र रूप से स्वतंत्र होने के साथ व्यक्तिगत रूप से रोलबैक-केवल स्थिति निर्धारित कर सकता है। बेशक, मानक PROPAGATION_REQUIRED व्यवहार के मामले में, इन सभी क्षेत्रों को एक ही भौतिक लेनदेन के लिए मैप किया जाएगा। तो आंतरिक लेन-देन के दायरे में एक रोलबैक-केवल मार्कर सेट बाहरी लेनदेन के वास्तव में प्रतिबद्ध होने का मौका प्रभावित करता है (जैसा कि आप इसकी अपेक्षा करेंगे)।
http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/html/transaction.html
स्प्रिंग अनुप्रयोगों में, यदि आप <tx:annotation-driven/>
का उपयोग कर एनोटेशन आधारित लेन-देन समर्थन को सक्षम और @Transactional (प्रचार = Propagation.REQUIRED) के साथ किसी भी वर्ग/विधि व्याख्या तो वसंत ढांचा शुरू कर देंगे एक लेनदेन और विधि निष्पादित करता है और लेनदेन करता है। यदि कोई रनटाइम अपवाद हुआ तो लेनदेन वापस लुढ़का जाएगा।
वास्तव में प्रचार = प्रचार। REQUIRED डिफ़ॉल्ट प्रचार स्तर है, आपको स्पष्ट रूप से इसका उल्लेख करने की आवश्यकता नहीं है।
अधिक जानकारी के लिए: http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/html/transaction.html#transaction-declarative-annotations
विभिन्न लेन-देन संबंधी सेटिंग्स और व्यवहार लेनदेन प्रबंधन के लिए अपनाया समझने के लिए, इस तरह के रूप REQUIRED
, ISOLATION
आदि आप लेनदेन प्रबंधन ही की मूल बातें समझने के लिए होगा।
स्पष्टीकरण पर अधिक के लिए Trasaction management पढ़ें।
आप Spring Docs
में प्रदान की जाती है कि परे उपयोग की एक laymans स्पष्टीकरण की जरूरत है इस कोड पर विचार करें ...
class Service {
@Transactional(propagation=Propagation.REQUIRED)
public void doSomething() {
// access a database using a DAO
}
}
जब DoSomething() कहा जाता है यह जानता है कि यह एक लेन-देन शुरू करने के लिए है निष्पादन से पहले डेटाबेस पर। यदि इस विधि के कॉलर ने पहले से ही एक लेनदेन शुरू कर दिया है तो यह विधि वर्तमान डेटाबेस कनेक्शन पर उसी भौतिक लेनदेन का उपयोग करेगी।
यह @Transactional
एनोटेशन आपके कोड को बताए जाने का माध्यम प्रदान करता है जब यह निष्पादित करता है कि यह एक लेनदेन है। यह बिना किसी के चलाएगा, इसलिए आप इस धारणा को अपने कोड में बना सकते हैं कि आपको अपने डेटाबेस में अपूर्ण डेटा के साथ नहीं छोड़ा जाएगा, या अपवाद होने पर कुछ साफ करना होगा।
लेनदेन प्रबंधन एक काफी जटिल विषय इसलिए उम्मीद है कि इस सरल जवाब
बहुत बढ़िया आदमी, महान मार्गदर्शन के लिए धन्यवाद .. –
यदि कोई दिलचस्पी लेता है, तो मैंने पोस्ट किया है [PROPAGATION_REQUIRES_NEW, PROPAGATION_NESTED, PROPAGATION_REQUIRED की तुलना में एक समान आम आदमी का उत्तर पोस्ट किया गया है (http://stackoverflow.com/questions/25076718/spring-propagation-examples -इन-लेमन-शब्द/25083505 # 25083505) – Brad
यदि यह डीएओ परत की घोषणा और पहुंच के लिए प्रॉक्सी आधारित कॉन्फ़िगरेशन का उपयोग कर रहा है, तो डीएओ कक्षा में विधि को @ ट्रांसेक्शनल के साथ भी एनोटेट किया जाना चाहिए। – Kurapika
स्प्रिंग REQUIRED
व्यवहार मतलब यह है कि same transaction
उपयोग किया जाएगा अगर है एक पहले से ही वर्तमान सेम विधि निष्पादन संदर्भ में लेन-देन खोला उपयोगी है है । यदिकोई मौजूदा लेनदेन स्प्रिंग कंटेनर एक नया बना देगा। यदि REQUIRED
व्यवहार के रूप में कॉन्फ़िगर किए गए कई विधियों को नेस्टेड तरीके से बुलाया जाता है तो उन्हें अलग-अलग लॉजिकल लेनदेन सौंपा जाएगा, लेकिन वे सभी समान भौतिक लेनदेन साझा करेंगे। संक्षेप में इसका मतलब है कि यदि एक आंतरिक विधि लेनदेन को रोलबैक का कारण बनती है, तो बाहरी विधि प्रतिबद्ध हो जाएगी और लेनदेन को भी रोलबैक करेगा
क्या आपने इसे पढ़ा है? http://static.springsource.org/spring/docs/2.5.x/reference/transaction.html#tx-propagation – Brad
प्रचार। REQUIRED लेनदेन का डिफ़ॉल्ट प्रचार मोड है, इसलिए आपको इसे स्पष्ट रूप से सेट करने की आवश्यकता नहीं है। – tibtof