2013-12-18 26 views
1

我有一個打包在JAR文件(我的EJB文件)中的應用程序。然後將其打包在EAR文件中。persistence.xml。使用哪一個

這兩個包都有自己的persistence.xml文件。哪一個玻璃魚(或任何服務器爲此事)使用?它是否查看這兩個文件?或者只有其中一個?

回答

1

哪一個人使用glassfish(或任何服務器)?

根據JPA specification

8.2持久性單元包裝

在Java EE的環境中,EJB-JAR,WAR,EAR或應用程序客戶端JAR可以定義persis- 唐塞單元。這些範圍內可以定義任意數量的持久性單元。 持久化單元可以打包在WAR或EAR中包含的一個或多個jar文件中,作爲EJB-JAR文件或WAR類目錄中的一組類,或者如以下定義的這些 的組合。 ..

編輯:

如果非要在這兩個XML文件中定義具有相同名稱的持久性單元,它將使用哪一個?

默認情況下,在.jar中定義的一個。

8.2.2持久性單元範圍

即在耳朵的級別定義的持久化單元通常是在應用程序的所有組件 可見。但是,如果同一名稱的持久性單元由EAR中的EJB-JAR,WAR或應用程序JAR文件定義,則在EAR 級別定義的該名稱的持久性單元對於由該JAR定義的組件將不可見EJB-JAR,WAR或應用程序的jar文件 除非持久單位參考使用持久性單元名稱#語法指定 路徑名來消除歧義的參考...

+0

肯定的,但它不說哪一個將用於其他。如果我在兩個具有相同名稱的XML文件中定義了一個持久性單元,它將使用哪一個? –

相關問題