2014-07-12 21 views
0

我有幾個jar文件(tasks.jar,calendar.jar,user.jar,authentication.jar),這些jar文件包含persistence.xml文件在他們每一個裏面。所有這些persistence.xml文件具有相同的持久性單元名稱,例如「TASK_MANAGER」。
我的問題是,我可以將這些jar文件添加到JSF web項目的lib文件夾中,並通過託管會話bean(它再次使用JPA實體管理器)和持久性單元名稱'TASK_MANAGER'使用它們。例如:如何將幾個jar文件和peristence.xml文件合併到一個jsf項目中

//All the imports go here (import com.app.model.task) etc.... 
@ManagedBean  
@RequestScoped 
public class TaskController{ 
    //Access the entity manager and work with their methods here 
} 

我知道,通過http://docs.oracle.com/javaee/6/tutorial/doc/bnbqw.html

如果你在一個JAR文件,該文件將包含在WAR或EAR文件 打包持久化單元,JAR文件應位於 無論是

  • 一個WAR
  • EAR文件的庫目錄的WEB-INF/lib目錄

但我的問題是我可以做到這一點與多個persistence.xml文件。

因爲在Eclipse中,當我試圖實現這一點時,只加載了最終jar文件的持久性文件,我知道這是因爲當我嘗試運行該應用程序時,其他實體無法識別。

如何將多個persistence.xml文件包含到一個項目中。

我檢查了這些已Configure persistence units to be available in several jars of an earhttps://stackoverflow.com/questions/23398636/combining-entities-across-jars-in-a-single-persistence-xml-file

回答

0

解決方案非常簡單。 eclipselink想知道子項目的persistence.xml文件是什麼。因此,在開發JAR的迷你項目中,我必須將以下屬性添加到它們的persistence.xml文件中。

<property name="eclipselink.composite-unit.member" value="true"/> 

之後,在主persistence.xml文件中,您還必須設置follwing屬性。

<property name="eclipselink.composite-unit" value="true"/> 

現在一切都完美的作品..

相關問題