如何将多个jar文件与persistence.xml文件合并到一个jsf项目中

时间:2014-07-12 05:05:51

标签: jsf jpa eclipse-kepler persistence.xml

我有几个我开发的jar文件(tasks.jar,calendar.jar,user.jar,authentication.jar),其中包含每个文件中的persistence.xml文件。所有这些persistence.xml文件都具有相同的持久性单元名称,例如' TASK_MANAGER'。
我的问题是我可以将这些jar文件添加到JSF Web项目的lib文件夹中,并通过托管会话bean使用它们,托管会话bean再次使用JPA实体管理器,持久性单元名称' TASK_MANAGER' 。例如:

//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的WEB-INF / lib目录
  •   
  • EAR文件的库目录
  •   

但我的问题是我可以使用多个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

1 个答案:

答案 0 :(得分:0)

解决方案非常简单。 eclipselink想知道子项目是什么' persistence.xml文件是。所以在那些开发JAR的迷你项目中,我不得不将以下属性添加到他们的persistence.xml文件中。

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

之后在主persistence.xml文件中,您还必须设置follewing属性。

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

现在一切都很完美..