我已经在独立应用程序中将 JPA 与 Hibernate 结合使用,但现在我想尝试使用应用程序服务器。我知道 GlassFish 为 JPA 提供了 EclipseLink 实现,但我有几个问题。
- 我需要在
persistence.xml
中指定 EclipseLink 作为我的持久性单元的提供者吗? persistence.xml
看起来是否与未部署应用程序时一样?如果看起来不一样,那它看起来怎么样?- 我是否需要专门下载 EclipseLink 的实现 jar 并使用它们进行构建,或者容器是否在部署我的应用程序后处理此问题?
- 如何在
persistence.xml
中指定 jdbc 驱动程序? - 我的应用程序需要部署为
.ear
吗?
最佳答案
您不需要指定持久性提供程序,默认情况下将使用应用程序服务器中包含的持久性提供程序(当然,如果它至少具有 Web 配置文件,否则 Tomcat 等服务器将不会为您提供 EclipseLink)。
是的,它将具有相同的外观(在这两个应用程序中,您只是以相同的方式使用 JPA)。
要编译代码,您只需要在类路径中包含 persistence-api.jar(如果您使用 Maven,请将范围设置为“provided”)。然后服务器会自动提供其实现jar。
您可以使用 this page 中描述的持久性单元。 (“Java SE 环境中的典型配置”)。但我宁愿建议你使用
<jta-data-source>
相反,它指的是 datasource provided by GlassFish .据我所知,它也可以是一个 WAR 文件,我部署它没有任何问题(webapp 作为 Maven WAR 模块 + JAR 模块中的 beans)。
里>
关于java - 具有 JPA 配置的 Glassfish 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12597417/