【发布时间】: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 复制到主要资源的情况下检测到我的实体?我也不想手动列出我的实体。
【问题讨论】: