मैं जावा ऐप पर काम कर रहा हूं जो वसंत IoC और जेडीबीसी टेम्पलेट कक्षाओं का उपयोग करता है। मेरे पास एक डीएओ कक्षा है जिसमें 4 विधियां हैं: एम 1() से एम 4()।वसंत जेडीबीसी का उपयोग कर आसान लेनदेन?
while(true)
{
//process & generate data
dao.m1(data1);
dao.m2(data2);
dao.m3(data3);
dao.m4(data4);
//sleep
}
मैं लगातार 4 पद्धति के तहत db संचालन हैं: इस प्रकार एम 1 टेबल t1, टेबल t2 पर एम 2, T3 पर एम 3, आदि पर अनेक निवेशन और अद्यतन
डीएओ तरीकों का इस्तेमाल किया जाता है करता है परमाणु होने के लिए कॉल, या तो सभी 4 टेबल सफलतापूर्वक अपडेट किए गए हैं या कोई नहीं हैं। इसलिए, यदि m3() में संचालन करते समय कोई त्रुटि हुई है, तो मैं m2 & m1 में किए गए सभी परिवर्तनों को अपडेट करना चाहता हूं (अपडेट & आवेषण)।
तो क्या वसंत आपको निम्न तरीके से करने देता है?
while (true)
{
//process & generate data
transaction = TransactionManager.createNewTransaction();
transaction.start()
try
{
dao.m1(data1);
dao.m2(data2);
dao.m3(data3);
dao.m4(data4);
}
catch(DbUpdateException e)
{
transaction.rollBack();
}
transaction.end();
// sleep
}
या वहाँ बेहतर तरीके यह करने के लिए कर रहे हैं?
देखें मैं तुम्हें एम 1, एम 2, @Transactional के रूप में आदि टिप्पणी करने की जरूरत है विश्वास नहीं है। यदि कोई अपवाद फेंकता है, तो डू वर्क द्वारा पहले से पूरा किया गया सब कुछ वापस लुढ़का जाएगा। – Chadwick
आपको इस संदर्भ में, आवश्यकता नहीं है। लेकिन अगर वे अपडेट कर रहे हैं, तो आपको लेन-देन की आवश्यकता के रूप में उन्हें एनोटेट करना चाहिए, अन्यथा यदि आप उन्हें doWork() संदर्भ से बाहर कॉल करते हैं तो आप स्वयं को गैर-लेनदेन अपडेट कर सकते हैं। – cletus
क्या @ निजीकरण विधि पर लागू होने पर @ ट्रांसेक्शनल एनोटेशन कुछ भी करता है? –