2014-11-20 8 views
5

के बीच अंतर है, मैं लगभग सभी वसंत दस्तावेज़ पढ़ें। जहां तक ​​मुझे समझ में आया कि वसंत विन्यास राक्षस है। एनोटेशन आधारित या XML आधारित है, यह कोई फर्क नहीं पड़ता लेकिन क्या मैं सच में समझ में नहीं आता क्या लेन-देन प्रबंधक और इकाई प्रबंधक के बीच का अंतर है।क्या एक छात्र के रूप लेन-देन प्रबंधक और इकाई प्रबंधक

हम दाव परत पर entityManager इंजेक्शन किया है, कारण है कि हम सेवा परत पर या ठीक इसके विपरीत लेन-देन प्रबंधक की जरूरत है। यदि हम लेनदेन प्रबंधक इंजेक्ट करते हैं (जो इकाई प्रबंधक को लपेटता है) हमें दाओलेयर पर इकाई प्रबंधक को इंजेक्ट करने की आवश्यकता क्यों है। JPARepositories के लिए, मुझे किसी भी प्रबंधक को इंजेक्ट करने की भी आवश्यकता नहीं है। वसंत मेरे लिए सबकुछ करता है (मैं वास्तव में यांत्रिकी को समझ नहीं पा रहा हूं)। मेरा दूसरा प्रश्न JPARepositories के लिए है वसंत इकाई प्रबंधक या लेनदेन प्रबंधक का उपयोग करता है?

उत्तर

6

लेनदेन प्रबंधक पूरी तरह से EntityManager के लिए अलग है, एक संस्थाओं (श्रोता, संस्थाओं, रिश्ते, दृढ़ता जीवनशैली का प्रभारी है और यह इंटरफ़ेस एक विशिष्ट दृढ़ता से जुड़े दृढ़ता संदर्भ से बातचीत करने के लिए उपयोग की जाने वाली विधियों को परिभाषित करता है) संदर्भ में, जहां संस्थाओं जीवित हैं, इस बीच TransactionManager सभी लेन-देन की जरूरत है कि आपके आवेदन के भीतर होती है करने के लिए करने के लिए समर्थन देने के लेन-देन संबंधी डेटा का उपयोग के लिए जिम्मेदार है,।

एक विशिष्ट transactionmanager करने के लिए एक entitymanager वस्तु विन्यास बाँध।

<bean class="org.springframework.orm.jpa.JpaTransactionManager" id="transactionManager"> 
    <property name="entityManagerFactory" ref="entityManagerFactory" /> 
    <qualifier value="pagTransactionManager" /> 
</bean> 

<bean class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean" id="entityManagerFactory"> 
    <property name="persistenceUnitName" value="persistenceUnit" /> 
    <property name="dataSource" ref="dataSource" /> 
    <property name="jpaDialect"> 
     <bean class="org.springframework.orm.jpa.vendor.HibernateJpaDialect" /> 
    </property> 
</bean> 
कौन सा यह डेटाबेस के लिए कनेक्शन का मतलब है और संस्थाओं EntityManager द्वारा प्रबंधित किया जाता है, लेकिन उद्देश्य यह है कि सेवा परत @Transaction एनोटेशन का उपयोग करने में एक करीब लेन-देन को खोलने TransactionManager है

javax.transaction.TransactionManager इंटरफ़ेस एप्लिकेशन सर्वर को प्रबंधित होने वाले एप्लिकेशन की तरफ से लेनदेन सीमाओं को नियंत्रित करने की अनुमति देता है, इस इंटरफ़ेस में बहुत सी विधि होती है जो उन्हें नियंत्रित करने के लिए उपयोग कर रही हैं जैसे: प्रतिबद्ध, निलंबित, रोलबैक।

तो मूल रूप से इन वस्तुओं में से किसी एक को इंजेक्ट करने के लिए आप जो खोज रहे हैं उस पर निर्भर करते हैं, संस्थाओं का प्रबंधन करते हैं और उनके साथ काम करते हैं, इकाई प्रबंधक का उपयोग करते हैं, अपने आवेदन की लेनदेन संबंधी स्थिति को अपने आप लेनदेन प्रबंधक का उपयोग करते हैं।

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