persistence.xml中jar文件的正确路径应该是什么

q9rjltbz  于 2021-08-20  发布在  Java
关注(0)|答案(1)|浏览(315)

我有一个jar文件和该jar文件中meta inf中的persistence.xml。我想使用配置persistence.xml <jar-file> . 我还有一个lib目录和jar文件在同一个文件夹中。但我找不到正确的道路 <jar-file> 标签。我试过了;

<jar-file>lib/entity.jar</jar-file>
<jar-file>../lib/entity.jar</jar-file>
<jar-file>./lib/entity.jar</jar-file>
<jar-file>../../lib/entity.jar</jar-file>

但是没有运气。实体管理器在entity.jar中找不到实体

0x6upsns

0x6upsns1#

正如JPA2.2规范所述(参见第8.2.1.6.3节jar文件):
可以使用jar文件元素来指定一个或多个jar文件,而不是使用Map文件元素中指定的Map文件,或者除了Map文件元素中指定的Map文件之外。如果指定,将在这些jar文件中搜索托管持久性类,并处理在其上找到的任何Map元数据注解,或者使用本规范定义的Map注解默认值Map它们。此类jar文件是相对于包含[91]持久化单元根的目录或jar文件指定的。[92]
...
[91]此语义适用于写入persistence_2_0.xsd或更高版本模式的persistence.xml文件。由于java persistence 1.0规范中的模糊性,该元素使用的相关引用的特定于提供者的解释可能适用于早期版本。
[92]鼓励持久性提供程序支持此语法,以便在java se环境中使用。
您的案例类似于规范中的示例1:

app.ear
   lib/earEntities.jar
   earRootPUnit.jar (with META-INF/persistence.xml )

persistence.xml contains: <jar-file>lib/earEntities.jar</jar-file>

但是,如果您使用JPA1.0,您应该检查特定于提供者的文档的相关部分。

相关问题