मुझे संदेह है कि यह शर्मनाक है कि मैं इसे एक भयानक तरीके से गलत कर रहा हूं, लेकिन कृपया मेरे साथ सहन करें।स्प्रिंग प्रबंधित लेनदेन, एक्लिप्ससेंक जेपीए, कस्टम अलगाव स्तर
मेरे पास स्प्रिंग-प्रबंधित लेनदेन के साथ एक स्प्रिंग एप्लिकेशन है। यह एक्लिप्ससेंक जेपीए का उपयोग करता है। मेरे पास एक तरीका है जो findByNativeQuery()
करता है जिसके बाद merge()
होता है। मुझे एक असली सीरियल लेनदेन अलगाव स्तर में होने की आवश्यकता है। मैं @Transactional(isolation=Isolation.SERIALIZABLE)
जोड़ने क्योंकि org.springframework.orm.jpa.vendor.EclipseLinkJpaDialect#beginTransaction
किसी भी लेनदेन अलगाव स्तर लेकिन डिफ़ॉल्ट का समर्थन नहीं करता यह काम नहीं करता की कोशिश की। तो फिर मैं ElcipseLink की UnitOfWork internals के लिए हो रही है और शुरू करने/अपने ही लेन-देन comitting की कोशिश की, लेकिन फिर मैं कोई त्रुटि मिलती है:
"java.lang.IllegalStateException : Not allowed to create transaction on shared EntityManager - use Spring transactions or EJB CMT instead
निश्चित रूप से कौन सा समझ में आता है ... लेकिन मैं क्या करूँ ??
को वसंत 4.1.2 में जोड़ा गया [इस] पर एक नज़र (http ले लो : //www.byteslounge.com/tutorials/spring-change-transaction-isolation-level-example)। मैंने इसे स्वयं नहीं किया है, लेकिन शुरू करने के लिए एक अच्छी जगह की तरह दिखता है। –
मुझे लगता है कि जेपीए कस्टम अलगाव स्तर का समर्थन नहीं करता है। यह जेपीए की एक सीमा है, वसंत नहीं। इसे कस्टम JpaDialect – Chakri