आपको शायद अपने अलगाव स्तर को बदलने की जरूरत है। http://www.interview-questions-tips-forum.net/index.php/Your-Questions-on-Java/JDBC-Transaction/Transaction-Isolation-Levels
यह अलग अलगाव स्तर के बारे में बात करती है, और वे क्या के खिलाफ गार्ड मदद कर सकते हैं:
यहाँ कुछ जानकारी है। ऐसा करने का सामान्य तरीका सख्ती से शुरू करना है, और फिर डेटा अखंडता/झूठी पठन की आवश्यकताओं को ध्यान में रखते हुए, आपको बेहतर प्रतिक्रिया समय की आवश्यकता होने पर कम हो जाएं।
संपादित
स्प्रिंग लेन-देन का स्तर लेनदेन प्रबंधक पर सार JDBC (या जो भी) लेनदेन अलगाव स्तर तक किया जाता है। उन्हें TransactionDefinition कक्षा में परिभाषित किया गया है, और स्थिर सदस्य हैं।
TransactionDefinition.ISOLATION_DEFAULT
Default isolation
TransactionDefinition.ISOLATION_READ_UNCOMMITTED
Lowest level of isolation; allows transactions to see uncommitted modifications from other transactions
TransactionDefinition.ISOLATION_READ_COMITTED
Cannot read uncommitted data
TransactionDefinition.ISOLATION_REPEATABLE_READ
Ensures repeatable reads
TransactionDefinition.ISOLATION_SERIALIZABLE
Most reliable; all transactions are executed atomically, and are treated as though they occurred serially.
लेनदेन प्रचार स्तर भी हैं। आप शुद्ध पढ़ने के लिए एक लेनदेन का उपयोग कर रहे हैं, जो अधिक हो सकता है - पढ़ता है लेनदेन की आवश्यकता नहीं है, लिखना हमेशा उनके आसपास एक लेनदेन होना चाहिए। प्रसंस्करण स्तर लेनदेन परिभाषा में भी निश्चित हैं। इन्हें आमतौर पर वसंत तारों की फाइल में इस्तेमाल किया जाता है, ताकि किसी विशेष कॉल के लिए क्रमबद्धता और प्रसार को परिभाषित किया जा सके। अगर आपके पास तारों का एक उदाहरण है, तो मैं कुछ और संकेत/जानकारी दे सकता हूं।
मुझे मेरी लेनदेन सीमाओं के बारे में अनिश्चितता है। मेरे पास मेरे डीएओ विधियों पर @transactional है जिसके लिए एक लेनदेन की आवश्यकता है, लेकिन मेरे पास डीएओ का उपयोग कर कोड में मेरे प्रवेश बिंदु पर @transactional भी है। अगर मैं पूर्व को हटा देता हूं तो यह मुझे कोई लेनदेन त्रुटि नहीं देता है। यह कुछ ऐसा है जो मैं वर्तमान में जांच कर रहा हूं। Http://stackoverflow.com/questions/807457/ –
मेरी @ ट्रान्सैक्शनल बहुत दूर थी, एक बार जब मैंने इसे हटा दिया तो प्रक्रिया डेटाबेस को लॉक किए बिना ठीक काम कर रही है। मेरे पास अभी भी कुछ अजीब मुद्दे हैं @ ट्रांसेक्शनल, लेकिन इस प्रक्रिया के लिए मैंने हल किया कि यह केवल छोटे लेनदेन पर निर्भर है। यह सवाल उपयोगी था http://stackoverflow.com/questions/1079114। –