मैं वसंत का उपयोग नहीं कर रहा हूं इसलिए मैं कक्षा के भीतर EntityManager का एक उदाहरण बना रहा हूं।हाइबरनेट एंटिटी मैनेजर, क्या इसे सिंगलटन के रूप में इस्तेमाल किया जाना चाहिए?
मैंने कक्षाओं को स्वत: उत्पन्न करने के लिए हाइबरनेट-एक्लिप्स रिवर्स इंजीनियरिंग का उपयोग किया। इन वर्गों में सभी में EntityManager का एक उदाहरण है।
मुझे 100% यकीन नहीं है कि हाइबरनेट एंटिटी मैनेजर के साथ कैसे काम करता है, इसलिए मुझे आश्चर्य है कि यह ठीक है कि इस वर्ग के इतने सारे उदाहरण (EntityManager) बनाए गए हैं, उदाहरण के लिए, लेनदेन के साथ समस्याएं होंगी?
क्या मुझे सिर्फ एक अलग वर्ग बनाना चाहिए जो मेरे सभी अन्य वर्गों के लिए EntityManager का एक स्थिर उदाहरण वितरित करे? या यह कोई महत्त्व नहीं रखता?
संपादित करें: मुझे लगता है कि @PersistenceContext नामक कुछ है, ऐसा लगता है कि यह मेरे persistence.xml को आवृत्ति चर में एक बीन के रूप में लोड नहीं कर रहा है, क्या इस सुविधा को वसंत की आवश्यकता है? जहाँ मैं @persistencecontext
@PersistenceContext(unitName = "manager1")
private EntityManager entityManager;
मेरी persistence.xml उपयोग करने के लिए
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
version="2.0">
<persistence-unit name="manager1" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<properties>
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
<property name="javax.persistence.jdbc.user" value="root"/>
<property name="javax.persistence.jdbc.password" value="mypassword"/>
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost/ptbrowserdb"/>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
</properties>
</persistence-unit>
</persistence>
क्या आप केवल निजी एक्सेस संशोधक ('EntityManager 'पर) और परीक्षण को हटा सकते हैं? – Santosh