Java 如何让Hibernate扫描jar中包含的jar文件中的实体

Java 如何让Hibernate扫描jar中包含的jar文件中的实体,java,hibernate,jpa,persistence.xml,Java,Hibernate,Jpa,Persistence.xml,我有一个令人烦恼的问题。 我正在升级东西到j11和最新的一切,但我不能改变太多的应用程序本身。创建的jar文件本身包含一个包含映射实体的jar文件,如下所示: 罐子 BOOT-INF 班级 应用程序类 解放党 实体库 META-INF persistence.xml 在我的persistence.xml中,我通过如下指令引用实体库: BOOT-INF/lib/EntityLib-1.0.jar 但是扫描仪找不到它。(我得到java.nio.file.NoSuchFi

我有一个令人烦恼的问题。 我正在升级东西到j11和最新的一切,但我不能改变太多的应用程序本身。创建的jar文件本身包含一个包含映射实体的jar文件,如下所示:

罐子

  • BOOT-INF
    • 班级
      • 应用程序类
    • 解放党
      • 实体库
  • META-INF
    • persistence.xml
在我的
persistence.xml
中,我通过如下指令引用实体库:

BOOT-INF/lib/EntityLib-1.0.jar
但是扫描仪找不到它。(我得到
java.nio.file.NoSuchFileException:BOOT-INF/lib/EntityLib-1.0.jar

我已经阅读了JSR-338、JPA2.1的部分内容,并查看了示例,但我没有进一步了解。 我正在使用Hibernate 5.3.3.Final 这是一个spring引导应用程序,但最初的开发者使用基本JPA而不是spring func,我不允许重写那么多应用程序(老实说,我也不想这么做)


编辑:该应用程序是通过普通的
springbootmaven插件创建的

这个JAR是使用标准过程生成的吗(即默认的springbootmaven/Gradle插件配置)?我本以为
persistence.xml
会在
BOOT-INF/classes/META-INF
下结束
lib/EntityLib-1.0.jar将correct@crizzis是的,它使用spring boot maven-plugin@crizzis实际上,BOOT-INF/classes/META-INF库不存在。前面的注释可能会造成不必要的混淆。我的意思是我认为
persistence.xml
通常会在
BOOT-INF/classes/META-INF
下结束,而不是根
META-INF
。然后,持久性提供程序应该接受一个简单的
lib/xxx.jar
路径。我可能弄错了,though@crizzis当从命令行运行BOOT-INF/lib/EntityLib-1.0.jar时,但在Intellij中它失败了。这个jar是使用标准过程(即默认的Spring BOOT Maven/Gradle插件配置)生成的吗?我本以为
persistence.xml
会在
BOOT-INF/classes/META-INF
下结束
lib/EntityLib-1.0.jar将correct@crizzis是的,它使用spring boot maven-plugin@crizzis实际上,BOOT-INF/classes/META-INF库不存在。前面的注释可能会造成不必要的混淆。我的意思是我认为
persistence.xml
通常会在
BOOT-INF/classes/META-INF
下结束,而不是根
META-INF
。然后,持久性提供程序应该接受一个简单的
lib/xxx.jar
路径。我可能弄错了,though@crizzis从命令行运行BOOT-INF/lib/EntityLib-1.0.jar,但在Intellij中失败。
            <jar-file>BOOT-INF/lib/EntityLib-1.0.jar</jar-file>