당신이해야 할 일이 있습니다.하지만 그렇게할만한 것은 아닙니다. 아마도 JPA를 사용하여 자신의 공급자를 선택해야합니다. 최대 절전 모드. 그것은이 포함되어 있어야합니다 최소한
이
<?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>
다음 사용하는 Spring 애플리케이션 컨텍스트에서 데이터베이스 연결에 필요한 모든 것을 정의 : 그럼 당신은 META-INF 폴더에 퍼시스턴스 유닛을 정의 persistence.xml을 배치해야합니다 :
<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"/>
위의 일부 속성은 필요에 따라 변경되거나 추가 될 수 있습니다. 이 예제는 당신이 짐작할 수 있듯이 Hibernate와 PostgreSQL 데이터베이스가있는 JPA를위한 것입니다.
이제 당신은 단순히 같은 데이터 액세스 방법을 정의 할 수 있습니다
사용자가 응용 프로그램에 의해 정의 된 JPA 엔티티가
@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를 호출하는 트랜잭션을 관리 할 수 있습니다. 실제로는 그렇게합니다.하지만 예제를 너무 많이 혼란스럽게하지 않기 위해 함께 배치했습니다. 내 예를 직선으로 대신 이동 할 수 있습니다
니스 참조는 참조뿐만 아니라가는 가치가 http://icoloma.blogspot.com/2006/11/jpa-and-spring-fucking-cooltm_26.html 상위 3 링크입니다.
답변을 주셔서 감사 드리며, 내일은이 회사에서 일하게 될 것입니다. 그러나 마지막 두 링크는 동일합니다. –
죄송하지만, 제가 제공 한 링크에는 내가 염두에 둔 다른 링크를 포함하여 3 개의 링크가 더 있습니다 ... – topchef
이제 링크가 다운 된 것처럼 보입니다 ... –