2011-03-05 8 views
6

नहीं कर रहा है, मुझे लगता है कि यहां पहले से ही इसी तरह के प्रश्न पूछे गए हैं, लेकिन मुझे मेरी समस्या का समाधान नहीं मिला। असल में, मैं वसंत में हाइबरनेट के माध्यम से जेपीए का उपयोग करने की कोशिश कर रहा हूं, लेकिन डेटा किसी कारण से जारी नहीं है। वसंत लेनदेन पर डीबग पर लगने से कुछ भी नहीं पता - EntityManager खुला और बंद है, लेकिन लेनदेन प्रबंधक चिंताओं तक कुछ भी नहीं दिखाता है ... मुझे यकीन है कि मुझे कुछ बड़ा याद आती है, किसी भी मदद की सराहना की जाती है! अधिक जानकारी के लिए निम्नलिखित देखें।वसंत + जेपीए @ ट्रान्ससेक्शन

TIA

ओलिवर

मूल लेआउट इस प्रकार है: वर्ग FooDaoJPA के समारोह entityManager.persist(object) बाहर कॉल वस्तु जारी रहती है पर सहेजें।

वर्ग FooServiceImpl द्वारा सेवा इंटरफ़ेस लागू करता है:

@Transactional(rollbackFor = DataAccessException.class, 
        readOnly = false, timeout = 30, 
        propagation = Propagation.SUPPORTS, 
        isolation = Isolation.DEFAULT) 
public void saveFoo(Foo foo) throws DataAccessException { 
     fooDao.save(foo); 
} 

प्रसिद्घ कि fooDao स्प्रिंग आईओसी द्वारा इंजेक्ट किया जाता है

अंत में नियंत्रक एक FooService इंजेक्शन और saveFoo() फोन डेटा लागू करने के लिए है।

जेपीए विन्यास

<!-- JPA Entity Manager Factory --> 
<bean id="entityManagerFactory" 
      class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean" 
      p:dataSource-ref="feDataSource"/> 

<!-- Transaction Config --> 
<bean id="transactionManager" 
      class="org.springframework.orm.jpa.JpaTransactionManager" 
      p:entityManagerFactory-ref="entityManagerFactory"/> 

<tx:annotation-driven mode="aspectj"       
transaction-manager="transactionManager"/> 
+0

रोलबैक को हटाने के लिए स्कैन नहीं होगा। डेटा = अपरएक्सप्शन.क्लास और आसपास के दाओ कॉल डीबग उद्देश्य – blob

उत्तर

1

अपनी कॉन्फ़िगरेशन में mode="aspectj" पर ध्यान दें। इसके लिए अतिरिक्त कॉन्फ़िगरेशन की आवश्यकता होती है और आमतौर पर आपको तब तक इसका उपयोग नहीं करना चाहिए जब तक कि आप समझें कि इसका क्या अर्थ है और आपको इसकी आवश्यकता क्यों है। 10.5.6 Using @Transactional देखें।

+0

हालांकि उत्तर सीधे समस्या का समाधान नहीं करता है, लेकिन मुझे लगता है कि "पहलू" और इसकी संबंधित विन्यास (लोड समय बुनाई) समस्या का अपराधी है। आपकी सहायता के लिए धन्यवाद. – Oliver

1

पहली बात यह है कि लगता है कि एक संभावित मुद्दा प्रचार के लिए अपनी सेटिंग है।

http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/transaction/annotation/Propagation.html

ध्यान दें कि आप का समर्थन करता है जो "एक वर्तमान लेन-देन का समर्थन करें, कोई भी मौजूद नहीं है, तो अमल गैर transactionally" निर्दिष्ट किया है: यहाँ मान आप निर्दिष्ट कर सकते दिखा प्रलेखन है। आप शायद आवश्यक चाहते हैं, जो डिफ़ॉल्ट है, और या तो मौजूदा लेनदेन का उपयोग करेगा या यदि कोई वर्तमान में मौजूद नहीं है तो एक बना देगा।

+0

के लिए प्रयास करें, उत्तर के लिए thx। और यद्यपि आपने जो सुझाव दिया है वह समझ में आता है, लेकिन मैंने प्रचार की आवश्यकता के साथ प्रयास किया, ऐसा कोई फर्क नहीं पड़ता। इसके अलावा, मैंने एप्रेस पुस्तक "जेपीए के साथ वसंत दृढ़ता" से लिया मूल सेटिंग - लेकिन उस पुस्तक में कई टाइपो/असंगतताएं हैं, मैं इस पर शर्त नहीं लगाऊंगा। – Oliver

0

मेरे मामले में:

वसंत MVC के साथ जेपीए का उपयोग करना - मेरी परीक्षण और कोड के सभी बिना किसी त्रुटि के ठीक भाग गया - लक्षण है कि प्रतिबद्ध बस कोई फर्क नहीं पड़ता कि मैं क्या करने की कोशिश की डेटाबेस के लिए नहीं बचा होता था।

मैं मेरे मामले में ठीक मेरी applicationContext.xml और cglib-nodep-2.1_3.jar aopalliance-1.0.jar

निश्चित रूप से करने के लिए जोड़ने के लिए किया था। एनोटेशन-संचालित स्प्रिंग के बिना @ ट्रान्सएक्शनल एनोटेशन

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