यह जेपीए कार्यान्वयन और कॉन्फ़िगरेशन पर निर्भर करता है।
डिफ़ॉल्ट रूप से एक्लिप्ससेंक में एक कनेक्शन केवल सक्रिय (गंदे) लेनदेन की अवधि के लिए आयोजित किया जाता है। यानी पहले संशोधन या लॉक से, प्रतिबद्ध या रोलबैक तक। गैर-लेनदेन संबंधी प्रश्नों के लिए मांग पर कनेक्शन प्राप्त किया जाता है और क्वेरी निष्पादन के बाद लौटा दिया जाता है। यह कनेक्शन पूलिंग के अधिकतम उपयोग के लिए अनुमति देता है। तो, सामान्य रूप से em.close() कुछ भी नहीं करता है।
आप इसे "eclipselink.jdbc.exclusive-connection.mode" दृढ़ता इकाई संपत्ति का उपयोग करके कॉन्फ़िगर कर सकते हैं। "हमेशा" EntityManager के जीवन के लिए एक कनेक्शन रखेंगे।
आप लेन-देन के लिए अलग-अलग कनेक्शन पूल का भी उपयोग कर सकते हैं, बनाम गैर-लेनदेन वाले पाठ। यह जेटीए के साथ उपयोगी है, क्योंकि आप पढ़ने के लिए गैर-जेटीए डेटासोर्स का उपयोग कर सकते हैं।
मुझे हाइबरनेट के साथ कनेक्शन रिलीजिंग रणनीतियों का यह विवरण मिला: http://docs.jboss.org/hibernate/stable/core.old/reference/en/html/transactions-connection-release.html – GlenPeterson