1

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

你怎么看?

4

1 回答 1

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。交易类型、数据源和提供者如上所述。

于 2010-05-03T19:43:10.613 回答