Sadece bunu yapabilmek için yapmanız gereken bazı işler var ama hiç de değil. Sözde, JPA'yı kendi sağlayıcınız ile birlikte kullanacaksınız. Hazırda. bu içermelidir en azından
<?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>
Sonra, kullanmak Bahar uygulama bağlamında veritabanı bağlantısı için gerekli herşeyi tanımlamak: Sonra META-INF klasöründeki kalıcılık birimini tanımlar persistence.xml yerleştirmek gerekir:
<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"/>
Yukarıdaki bazı özellikler ihtiyaçlarınıza bağlı olarak değiştirilebilir veya eklenebilir. Örnek, tahmin edebileceğiniz gibi, JPA ile Hazırda Beklet ve PostgreSQL veritabanı içindir.
Şimdi sadece bu gibi veri erişim yöntemlerini tanımlayabilirsiniz:
Kullanıcı uygulamanız tarafından tanımlanan JPA varlıktır
@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);
}
}
. DAO'larınızı çağıran yönetici/denetleyici katmanında yönetici işlemleri yapabilirsiniz - aslında bunu böyle yapıyorum - ama çok fazla örneklememek için burada bir araya getirdim. Benim örneklerinden düz yerine gitmek isteyebilir
Güzel referanslar o referanslar yanı giderek değer http://icoloma.blogspot.com/2006/11/jpa-and-spring-fucking-cooltm_26.html ilk 3 bağlantılar olduğunu.
Cevabınız için teşekkürler, yarın bu işte çalışacağım. Ancak, sonunda her iki bağlantınız da aynıdır. –
Üzgünüz, ama sağlanan bağlantı akılda vardı diğer dahil olmak üzere 3 daha fazla bağlantı içerir ... – topchef
Şimdi bağlantı aşağı görünüyor ... –