前几天在IBM技术网站上看到了一篇介绍Spring2和JPA的文章
(作者:Li, Sing, 标题:Spring 2 和 JPA 简介)
http://www.ibm.com/developerworks/cn/views/java/tutorials.jsp?cv_doc_id=156552
按照例子做集成测试时遇到了一些问题,经过网上调查和不断的尝试终于运行成功了。原来例子的JPA实现是用toplink,我改成了hibernate,数据库由DB2改成了MySql。下面是一些配置信息和准备工作(只写和原文章不同的地方)。
(1)首先下载spring2.0.1和hibernate3.2.1。
(2)我没有用war文件,所以在tomcat5.5.20\conf\Catalina\localhost目录下创建dwspring.xml文件
[code]
<Context path="/dwspring" reloadable="true" docBase="D:/workspace/Spring2Web/WebContent">
<Resource name="jdbc/dwspring2" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="username" password="password" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost/test"/>
</Context>
[/code]
(3)在我的web应用目录下D:\workspace\Spring2Web\WebContent\WEB-INF\dwspring2-service.xml,修改entityManagerFactory内容
[code]
...
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<property name="showSql" value="true"/>
<property name="generateDdl" value="false"/>
<property name="databasePlatform" value="org.hibernate.dialect.MySQLDialect"/>
</bean>
</property>
</bean>
...
[/code]
修改TopLinkJpaVendorAdapter为HibernateJpaVendorAdapter
修改oracle.toplink.essentials.platform.database.MySQL4Platform为org.hibernate.dialect.MySQLDialect
(4)原文是用toplink作为JPA的提供者,需要用LTW,并且需要修改SimpleLoadTimeWeaver为InstrumentationLoadTimeWeaver。
而InstrumentationLoadTimeWeaver要求在启动tomcat时加上启动参数-javaagent:D:\Tools\spring-framework-2.0.1\dist\weavers\spring-agent.jar注意修改相应了路径。hibernate不需要设置LTW。
(5)拷贝mysql-connector-java-5.0.4-bin.jar到tomcat5.5.20\common\lib目录下
(6)我WEB-INF\lib下的jar文件
Jstl.jar
commons-logging.jar
Junit.jar
persistence.jar
Spring.jar
spring-mock.jar
Standard.jar
cglib-2.1.3.jar
commons-collections-2.1.1.jar
dom4j-1.6.1.jar
hibernate3.jar
hibernate-annotations.jar
javassist.jar
hibernate-entitymanager.jar
Jta.jar
antlr-2.7.6.jar
Asm.jar
jboss-archive-browsing.jar
(7)别忘了在集成测试前,先保证数据库里有数据。
我感觉目前spring配合tomcat运行JPA做得还不是很完美,使用javaagent启动参数是非常低效的一种方式。不过JPA是大势所趋,相信spring以后会在这方面做得更好。不知道大家有没有更好使用JPA的方法。
(作者:Li, Sing, 标题:Spring 2 和 JPA 简介)
http://www.ibm.com/developerworks/cn/views/java/tutorials.jsp?cv_doc_id=156552
按照例子做集成测试时遇到了一些问题,经过网上调查和不断的尝试终于运行成功了。原来例子的JPA实现是用toplink,我改成了hibernate,数据库由DB2改成了MySql。下面是一些配置信息和准备工作(只写和原文章不同的地方)。
(1)首先下载spring2.0.1和hibernate3.2.1。
(2)我没有用war文件,所以在tomcat5.5.20\conf\Catalina\localhost目录下创建dwspring.xml文件
[code]
<Context path="/dwspring" reloadable="true" docBase="D:/workspace/Spring2Web/WebContent">
<Resource name="jdbc/dwspring2" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="username" password="password" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost/test"/>
</Context>
[/code]
(3)在我的web应用目录下D:\workspace\Spring2Web\WebContent\WEB-INF\dwspring2-service.xml,修改entityManagerFactory内容
[code]
...
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<property name="showSql" value="true"/>
<property name="generateDdl" value="false"/>
<property name="databasePlatform" value="org.hibernate.dialect.MySQLDialect"/>
</bean>
</property>
</bean>
...
[/code]
修改TopLinkJpaVendorAdapter为HibernateJpaVendorAdapter
修改oracle.toplink.essentials.platform.database.MySQL4Platform为org.hibernate.dialect.MySQLDialect
(4)原文是用toplink作为JPA的提供者,需要用LTW,并且需要修改SimpleLoadTimeWeaver为InstrumentationLoadTimeWeaver。
而InstrumentationLoadTimeWeaver要求在启动tomcat时加上启动参数-javaagent:D:\Tools\spring-framework-2.0.1\dist\weavers\spring-agent.jar注意修改相应了路径。hibernate不需要设置LTW。
(5)拷贝mysql-connector-java-5.0.4-bin.jar到tomcat5.5.20\common\lib目录下
(6)我WEB-INF\lib下的jar文件
Jstl.jar
commons-logging.jar
Junit.jar
persistence.jar
Spring.jar
spring-mock.jar
Standard.jar
cglib-2.1.3.jar
commons-collections-2.1.1.jar
dom4j-1.6.1.jar
hibernate3.jar
hibernate-annotations.jar
javassist.jar
hibernate-entitymanager.jar
Jta.jar
antlr-2.7.6.jar
Asm.jar
jboss-archive-browsing.jar
(7)别忘了在集成测试前,先保证数据库里有数据。
我感觉目前spring配合tomcat运行JPA做得还不是很完美,使用javaagent启动参数是非常低效的一种方式。不过JPA是大势所趋,相信spring以后会在这方面做得更好。不知道大家有没有更好使用JPA的方法。