JPA persistence.xml共享相同的jar文件

时间:2010-05-03 17:52:55

标签: hibernate orm jpa ejb-3.0 persistence.xml

我想知道我是否可以为多个持久性单元共享相同的jar文件。我的意思是:我的persistence.xml文件中描述了两个持久性单元,并且实体不在同一个JAR中。实体位于一个单独的JAR文件中,但在那个实体中,两个持久性单元都有实体。我觉得我在某个地方变红,我可以使用这样的标签: externalEntities.jar#com.mycompany.EntityA 所以我可以分开他们。我尝试了这个解决方案,它不起作用。现在我想无法在同一个JAR文件中打包所有实体(两个不同的持久性单元)。

你觉得怎么样?

1 个答案:

答案 0 :(得分:2)

我不确定我是否理解了这个问题,但您是否尝试使用jar-file元素声明您的jar。从规范(第6.2.1.6节):

  

可以指定一个或多个JAR文件   使用jar-file元素代替   的,或者除了映射之外   mapping-file中指定的文件   元素。如果指定,这些JAR   将搜索文件以进行管理   持久化类和任何映射   在他们身上找到的元数据注释   将被处理,或者他们将被处理   使用映射注释进行映射   默认值由此定义   规格。这样的JAR文件是   相对于根的指定   持久性单位(例如,   utils/myUtils.jar)。

     

...

     

示例3:

<persistence-unit name="OrderManagement3">
  <jar-file>order.jar</jar-file>
  <jar-file>order-supplemental.jar</jar-file>
</persistence-unit>
     

一个名为的持久性单元   OrderManagement3已创建。任何   带注释的托管持久性类   发现在持久性的根源   单位被添加到托管列表中   持久性类。如果一个   META-INF/orm.xml文件存在,任何   类和映射信息   包含在其中的用于指定   以上。 order.jar和。{   order-supplemental.jar个文件是   搜索托管持久性   类和任何带注释的托管   在其中找到持久性类   和/或中指定的任何类别   这些jar文件的orm.xml个文件是   添加。事务类型,数据   源和提供者如上所述   上方。