我想知道我是否可以为多个持久性单元共享相同的jar文件。我的意思是:我的persistence.xml文件中描述了两个持久性单元,并且实体不在同一个JAR中。实体位于一个单独的JAR文件中,但在那个实体中,两个持久性单元都有实体。我觉得我在某个地方变红,我可以使用这样的标签: externalEntities.jar#com.mycompany.EntityA 所以我可以分开他们。我尝试了这个解决方案,它不起作用。现在我想无法在同一个JAR文件中打包所有实体(两个不同的持久性单元)。
你觉得怎么样?
答案 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
个文件是 添加。事务类型,数据 源和提供者如上所述 上方。