【问题标题】:Hibernate doesn't find entities in testHibernate 在测试中找不到实体
【发布时间】:2020-04-09 17:44:11
【问题描述】:

我有一个Maven构建的JDK11项目,充分利用了Java 9中引入的JPMS。

我想编写集成测试,我使用嵌入式 H2 数据库。我的 JPA 提供程序是 Hibernate 5.4.9。

由于H2数据库只在测试时使用,我首先尝试将persistence.xml放在测试资源文件夹中。

问题在于 Hibernate 仅在 test-classes 文件夹中查找实体,而完全忽略了我的实体所在的主类。所以我的测试失败了,因为它没有找到我要使用的实体。

如果我将持久性单元声明复制到主资源文件夹,一切正常,但是,我不希望将它放在那里,因为 Hibernate 只是一个测试依赖项,我不想使用不存在的类.

为什么会突然出现这个问题?我以前从未遇到过这个问题(主要是 Java 8 和 Hibernate 5.3)。

我能否在无需将persistence.xml 复制到主要资源的情况下检测到我的实体?我也不想手动列出我的实体。

【问题讨论】:

    标签: java hibernate


    【解决方案1】:

    我解决了。我忘记在我的测试persistence.xml 中的persistence-unit 声明中添加以下行:

    <jar-file>${project.build.outputDirectory}</jar-file>

    【讨论】:

      猜你喜欢
      • 2019-06-14
      • 1970-01-01
      • 2013-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多