您可以在独立的客户端应用程序中完美地使用JPA,将main()
类作为入口点。只需将JPA JAR添加到构建路径/类路径中,并将persistence.xml
配置为使用RESOURCE_LOCAL
事务类型即可。你可以在EclipseLink Wiki - Running JPA Outside Container找到开球的例子。以下是相关的摘录:
<persistence-unit name="LocalPersistenceUnit" transaction-type="RESOURCE_LOCAL">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties>
<property name="javax.persistence.jdbc.driver" value="oracle.jdbc.OracleDriver"/>
<property name="javax.persistence.jdbc.url" value="jdbc:oracle:thin:@localhost:1521:orcl"/>
<property name="javax.persistence.jdbc.user" value="scott"/>
<property name="javax.persistence.jdbc.password" value="tiger"/>
</properties>
</persistence-unit>
您可以通过在客户端项目作为Web项目的模块重复使用JPA模型和最终的DAO在Web项目中的客户端项目。例如,在Eclipse上,只需将客户端项目添加到Web项目的构建路径Java构建路径>项目>添加,并配置部署组装以使其最终成为JAR /WEB-INF/lib
。
最后,在您的Web项目中,您可以使用另一个persistence.xml
,它基本上指向客户端项目的JAR文件并覆盖事务类型。
<persistence-unit name="WebPersistenceUnit" transaction-type="JTA">
<jta-data-source>jdbc/DataSourceName</jta-data-source>
<jar-file>lib/JavaProject.jar</jar-file>
</persistence-unit>
这样您就不需要重复persistence.xml
中的模型类。
Hi BalusC。非常感谢你。我会试试看。一个小问题,在我的开发环境中,我必须为我的项目使用Eclipse 3.2,您是否知道如何在Eclipse 3.2中创建Java EE项目? – 2011-06-14 18:45:22
*新建>动态Web项目*。确保您使用的是“Eclipse for Java EE”版本。请注意*部署程序集*在3.5之前的版本中称为* Java EE Module Dependencies *。如果可以,只需升级到最新版本。免费。 – BalusC 2011-06-14 18:49:07
谢谢BalusC。 – 2011-06-14 20:33:43