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



我有一个jar文件和该jar文件中META-INF中的persistence.xml。我想用<jar-file>配置persistence.xml。此外,我在带有jar文件的同一文件夹中有一个lib目录。但我找不到<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 中找不到实体

正如JPA 2.2规范中所述(请参见章节8.2.1.6.3 Jar Files(:

可以使用JAR文件元素来指定一个或多个JAR文件,而不是使用映射文件元素中指定的映射文件,或者除了映射文件元素之外。如果指定,将在这些JAR文件中搜索托管持久性类,并且将处理在它们上找到的任何映射元数据注释,或者使用本规范定义的映射注释默认值对它们进行映射此类JAR文件是相对于包含[91]持久性单元根的目录或JAR文件指定的。[92]

[91]此语义适用于写入到persistence2_0.xsd或更高版本模式的persistence.xml文件。由于Java中的歧义Persistence1.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>

但是,如果您使用JPA 1.0,那么您似乎应该检查特定于提供者的文档的相关部分。

最新更新