我有我的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