मैं एक जेपीए एप्लिकेशन (हाइबरनेट के साथ) विकसित कर रहा हूं, और मैं ऑटोफ्लश सुविधा के साथ लड़ रहा हूं।किसी दिए गए डेटा का चयन करते समय EntityManager की फ्लश को रोकें
डिफ़ॉल्ट रूप से, जब भी हम किसी भी इकाई पर कोई क्वेरी संसाधित करते हैं, तो पूर्ण EntityManager फ़्लश किया जाता है। ज्यादातर मामलों में यह ठीक है: हम चाहते हैं कि जेपीए अद्यतित डीबी के खिलाफ प्रश्नों को संसाधित करे।
हालांकि, ऐसा होता है कि हम कुछ डी 0 में कार्यात्मक पैरामीटर स्टोर भी करते हैं। यह पूरी तरह से हमारे मूल व्यापार मॉडल से अलग है, और हम नहीं चाहते हैं कि हम पैरामीटर का चयन करते हुए हमने ईएम को फ़्लश किया: पैरामीटर प्राप्त करना प्रक्रिया में काफी गहरा हो सकता है और जब हम इसे जानते हैं तो हम ईएम को फ़्लश करने का नियंत्रण खो देते हैं; ठीक है ।
दरअसल, यह कुछ डीबी बाधा अपवाद का कारण बनता है: डेटा मॉडल अभी तक (प्रक्रिया के बीच में) स्थिर नहीं है, और पैरामीटर का चयन इस डेटा मॉडल की फ्लश को मजबूर करता है।
मैं पैरामीटर के दूसरे इकाई प्रबंधक जोड़ने पर विचार कर रहा हूं, लेकिन मुझे थोड़ा अधिक लगता है।
क्या इसे और आसानी से हल किया जा सकता है? पैरामीटर डीएओ पर अलगाव स्तर के साथ, ताकि पैरामीटर्स को एक अलग लेनदेन में संसाधित किया जा सके?
मैं सचमुच curios हूं कि आप "अपने एक्सए कनेक्शन पूल से नया कनेक्शन कैसे खोल सकते हैं", क्या आप कृपया उस पर अधिक जानकारी दे सकते हैं? पीएस: यह एक दिलचस्प समाधान हो सकता है, लेकिन मानक एपीआई का उपयोग नहीं कर रहा है। –
मेरी [HibernateSQLStatementCountTest] की जांच करें (https://github.com/vladmihalcea/vladmihalcea.wordpress.com/blob/master/hibernate-facts/src/test/java/com/vladmihalcea/HibernateSQLStatementCountTest.java)। यह 2 डेटा स्रोतों को सूचीबद्ध करता है: एक ही डीबी के लिए उसी लेनदेन में testDataSource और अन्य डेटा स्रोत, प्रत्येक व्यक्ति के अपने कनेक्शन के साथ। डीबग [मुख्य]: bttPreparer - संसाधन तैयार करने uniqueName = otherDataSource डीबग [मुख्य] के साथ एक XAResourceHolderState: bttPreparer - uniqueName = testDataSource –
के साथ एक XAResourceHolderState यही कारण है कि आप अपने जवाब में वर्णित नहीं है की तैयारी संसाधन: GitHub पर आपके पास दो अलग-अलग ' डेटासोर्स और आपके उत्तर में आप एक ही 'डेटासोर्स' के लिए दो कनेक्शन पुनर्प्राप्त करने के बारे में बात कर रहे हैं। –