EAR和JAR文件中的persistence.xml。使用哪种

时间:2013-12-18 17:06:57

标签: java java-ee glassfish ejb

我有一个打包在JAR文件(我的EJB文件)中的应用程序。然后将其打包在EAR文件中。

这两个软件包都有自己的 persistence.xml 文件。 glassfish(或任何服务器)使用哪一个?它看两个文件吗?或者只有其中一个?

1 个答案:

答案 0 :(得分:1)

  

glassfish(或任何服务器)使用哪一个?

根据JPA specification

  

8.2持久性单位包装

     

在Java EE环境中,EJB-JAR,WAR,EAR或应用程序客户端JAR可以定义一个persis-   tence单位。可以在这些范围内定义任意数量的持久性单元。   持久性单元可以打包在WAR或EAR中包含的一个或多个jar文件中,作为   EJB-JAR文件或WAR classes目录中的类集,或者这些类的组合   定义如下......

编辑:

  

如果我在两个具有相同名称的XML文件中定义了持久性单元,它将使用哪个?

默认情况下,您的.jar。

中定义的那个
  

8.2.2持久性单位范围

     

在EAR级别定义的持久性单元通常对所有组件可见   在申请中。但是,如果EJB-JAR定义了同名的持久性单元,   EAR中的WAR或应用程序jar文件,即在EAR中定义的该名称的持久性单元   对于EJB-JAR,WAR或应用程序jar定义的组件,级别将不可见   文件,除非持久性单元引用使用持久性单元名称#语法来指定   用于消除引用歧义的路径名...