2011-07-09 9 views
13

क्या वसंत में @ ट्रान्सैक्शनल एनोटेटेड विधियों को घोंसला करना संभव है? कुछ इस तरह विचार करें:नेस्टेड @ ट्रांसेक्शन

@Transactional 
public void a() { 
    obj.b(); 
} 

@Transactional 
public void b() { 
    // ... 
} 

क्या ख में इस तरह के एक मामले में होता है अगर मैं रोलबैक() एक में और रोलबैक()?

उत्तर

24

दूसरा @Transactional एनोटेशन विधि b() पर क्योंकि डिफ़ॉल्ट @TransactionalREQUIRED के एक प्रचार है वजह से नहीं है, इसलिए तरीकों विधि a() से बुलाया व्यवहार किया जाएगा। यदि आप विधि a() नामक विधि के भीतर एक नया लेनदेन शुरू करना चाहते हैं तो आपको प्रचार नियमों को संशोधित करने की आवश्यकता होगी। Transaction Propagation के बारे में पढ़ें।

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