ऐसा कुछ काम है जिसे आप ऐसा करने में सक्षम होने के लिए करना चाहते हैं लेकिन यह बिल्कुल भी नहीं है। माना जाता है कि आप अपने स्वयं के प्रदाता को चुनने के साथ जेपीए का उपयोग करेंगे, उदा। हाइबरनेट। ,
<?xml version="1.0" encoding="UTF-8"?>
<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_1_0.xsd"
version="1.0">
<persistence-unit name="YourDatabasePersistenceUnitName" transaction-type="RESOURCE_LOCAL"/>
</persistence>
इसके बाद, सब कुछ वसंत आवेदन संदर्भ आप उपयोग में डेटाबेस कनेक्शन के लिए आवश्यक परिभाषित कम से कम यह इन होना चाहिए: तो फिर तुम persistence.xml कि META-INF फ़ोल्डर में दृढ़ता इकाई को परिभाषित करता है रखने की आवश्यकता होगी
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>/WEB-INF/jdbc.properties</value>
</property>
</bean>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close" scope="singleton">
<property name="driverClassName" value="org.postgresql.Driver"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="persistenceUnitName" value="YourDatabasePersistenceUnitName"/>
<property name="dataSource" ref="dataSource"/>
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<property name="database" value="POSTGRESQL" />
<property name="databasePlatform" value="org.hibernate.dialect.PostgreSQLDialect"/>
<property name="showSql" value="true"/>
<property name="generateDdl" value="false"/>
</bean>
</property>
</bean>
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory"/>
<property name="dataSource" ref="dataSource"/>
</bean>
<tx:annotation-driven transaction-manager="transactionManager" />
<bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />
<bean class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor"/>
उपरोक्त कुछ गुणों को आपकी आवश्यकताओं के आधार पर बदला या जोड़ा जा सकता है। उदाहरण जेपीए के लिए हाइबरनेट और पोस्टग्रेएसक्यूएल डेटाबेस के साथ है जैसा आपने अनुमान लगाया होगा।
अब आप बस इस तरह अपने डेटा का उपयोग तरीकों को परिभाषित कर सकते हैं:
@Repository
@Transactional
public class UserJpaDAO {
protected EntityManager entityManager;
@PersistenceContext
public void setEntityManager(EntityManager entityManager) {
this.entityManager = entityManager;
}
public void save(User theUser) {
entityManager.persist(theUser);
}
public User update(User theUser) {
return entityManager.merge(theUser);
}
}
जहां उपयोगकर्ता एक जेपीए इकाई अपने आवेदन से परिभाषित किया गया है। आप प्रबंधक/नियंत्रक परत पर प्रबंधक लेनदेन कर सकते हैं जो आपके डीएओ को कॉल करता है - असल में मैं इसे इस तरह से करता हूं - लेकिन मैंने इसे यहां एक साथ रखा है उदाहरण के लिए बहुत ज्यादा नहीं।
अच्छा संदर्भ है कि आप मेरी उदाहरण के सीधे करने के बजाय जाने के लिए चाहते हो सकता है http://icoloma.blogspot.com/2006/11/jpa-and-spring-fucking-cooltm_26.html शीर्ष 3 लिंक यह संदर्भ के रूप में अच्छी तरह से करने के लिए जा लायक हैं है।
उत्तर के लिए धन्यवाद, मैं कल इस काम पर खेलूँगा। हालांकि, अंत में आपके दोनों लिंक समान हैं। –
क्षमा करें, लेकिन मेरे द्वारा प्रदान किए गए लिंक में 3 अन्य लिंक शामिल हैं, जिनमें से एक मेरे मन में था ... – topchef
अब लिंक नीचे दिखाई देता है ... –