我有我的web应用程序的Maven 3岁以下的Spring MVC开发在这个控制器我已经@Autowired PersonDAO dbController
我想使用JPA 2.0管理持久性,所以我rewrited我applicationContext.xml的一个控制器: 我加什么是解决方案正确开发这个Spring和JPA webapp示例?
`<tx:annotation-driven transaction-manager="transactionManager" />
<bean
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"
id="entityManagerFactory">
<property name="dataSource" ref="dataSource" />
<!-- <property name="packagesToScan" value="net.tirasa.test.addressbook.dao" />-->
<property name="persistenceUnitName" value="persistenceUnit" />
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<property name="showSql" value="true" />
<!--<property name="generateDdl" value="true" />-->
<!--<property name="databasePlatform" value="org.hibernate.dialect.H2Dialect" />-->
<!--<property name="database" value="H2" />-->
</bean>
</property>
</bean>
<bean class="org.springframework.orm.jpa.JpaTransactionManager"
id="transactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="org.h2.Driver"/>
<property name="url" value="jdbc:h2:mem:test;DB_CLOSE_DELAY=-1"/>
<property name="username" value="sa"/>
<property name="password" value=""/>
</bean>`
我PersonDAOImpl是:
@Repository
public class PersonDAOJpaImpl implements PersonDAO {
//@Value("#{entityManager}")
@PersistenceContext(type = PersistenceContextType.TRANSACTION)
//@Autowired
protected EntityManager entityManager;
private final static Logger LOG = LoggerFactory.getLogger(PersonDAOJpaImpl.class);
@Transactional
public void save(String id, String name, String email, String telephone) throws DatabaseException {
Person person = null;
if (find(id) == null) {
entityManager.persist(person);
} else {
entityManager.merge(person);
}
}
@Transactional
public Person find(String requestParam_id) throws DatabaseException {
return entityManager.find(Person.class, requestParam_id);
}
@Transactional
public List<Person> list() throws DatabaseException {
Query query = entityManager.createQuery("select p from Persons p");
List<Person> resultList = query.getResultList();
Person p = null;
entityManager.find(Person.class, "Andrea Patricelli");
System.out.println("ECCO UN ELEMENTO DELLA LISTA: ------->" + resultList.iterator().next().getName());
System.out.println("ECCO IL RISULTATO DELLA FIND: -------->" + p.getName());
return resultList;
}
但没有任何工程; 我做错了什么? 特别是我不知道如何连接我的PersonDAO dbController与PersonDAOImpl和entityManager
没有作品是太泛泛。也许你需要重新安装你的操作系统。花几分钟或几小时阅读关于一切如何连接的Spring文档。 – 2013-05-07 14:55:47
我知道,但它太广泛了......但我没有时间,我有一个尊重的里程碑,我害怕失去很多时间在无用的事情上,只是为了了解几件重要的事情 – andPat 2013-05-08 07:01:43