【JPA+Struts1.3+Spring2.5】
首先搭建JPA环境:
第一步:搭建JPA的运行环境:hibernate-3.2.6压缩白里的hibernate.jar和lib目录下的jar文件
hibernate-entitymanager-3.4.0.GA压缩包里的hibernate-entitymanager.jar和lib目录下的jar文件。
然后在类路径META-INF文件夹,在此文件夹创建persistent.xml文件
第二步:搭建Spring的运行环境,并集成JPA .spring-framework-2.5.6中的dis文件夹下Spring.jar和lib目录下的aspectj(面
向切面)的2个jar文件,cglib(用于动态生成字节码)目录下的jar文件,(因为我们要通过注释的方式实现依赖注入)j2ee目录下
的common-annotations.jar。(因为要使用数据源)jakarta-commons目录下的commons-dbcp.jar、commons-logging和commons-
pool.jar
【*】Spring的org.springframework.orm.jpa包提供classes for tests based on the Java Persistence API (JPA).
【注意】:有时候一个空格就会影响成败,所以一定要注意细节,如当我在集成JPA和Spring的时候,
<property name="hibernate.dialect" value=" org.hibernate.dialect.SQLServerDialect" />因为前面org.hibernate...前
面有一个空格而导致程序在单元测试的时候出现异常。所以正确的是:
<property name="hibernate.dialect" value="org.hibernate.dialect.SQLServerDialect" />
【文档总结】
(一)Spring提供3种方式实例化EntityManagerFactory。
【·】LocalEntityManagerFactoryBean
<beans>
<bean id="myEmf" class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean">
<property name="persistenceUnitName" value="myPersistenceUnit"/>
</bean>
</beans>
备注:This is the simplest but also most limited from of JPA deployment(这种方式是最简单的方式,也是最受限制的
对于部署JPA的形式),There is no way to link to an existing JDBC DataSource and no support for global
transactions(这种方式不能去连接已经存在的JDBC数据源,并且也不支持全局事务),Only use this option in simple
deployment environments like standalone applications and integration tests(这种方式仅仅用于简单的部署环境,像单
个的电脑应用程序和集成测试)。
【·】Obtaining an EntityManagerFactory from JNDI(获得一个EntityManagerFactory对象从JNDI)
<beans>
<jee:jndi-lookup id="myEmf" jndi-name="persistence/myPersistenceUnit"/>
</beans>
【·】LocalContainerEntityManagerFactoryBean
<beans>
<bean id="myEmf" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="someDataSource"/>
<property name="loadTimeWeaver">