无法识别src/test/java中的实体
作为测试的一部分,我正在创建一个DAO,它的唯一目的是在测试中。尝试运行单元测试时,我遇到以下错误:无法识别src/test/java中的实体,java,hibernate,maven,jpa,entity,Java,Hibernate,Maven,Jpa,Entity,作为测试的一部分,我正在创建一个DAO,它的唯一目的是在测试中。尝试运行单元测试时,我遇到以下错误: java.lang.IllegalArgumentException: Unknown entity: 当实体驻留在src/test/java文件夹中时,它们似乎不会被拾取。将实体移动到src/main/java时,一切正常。问题是,这个DAO只用于测试,我真的不想把它放在main中。有办法解决这个问题吗?[如果您使用JPA]您需要为测试类使用一个单独的持久化单元(我建议在测试资源中使用一个单
java.lang.IllegalArgumentException: Unknown entity:
当实体驻留在src/test/java文件夹中时,它们似乎不会被拾取。将实体移动到src/main/java时,一切正常。问题是,这个DAO只用于测试,我真的不想把它放在main中。有办法解决这个问题吗?[如果您使用JPA]您需要为测试类使用一个单独的持久化单元(我建议在测试资源中使用一个单独的persistence.xml),并且需要在
类
标记中提到persistence.xml中的所有实际ORM实体
例如,根据我遵循的策略,我创建了一个TestUtility,并使用CDI注入注入持久化单元
private static final String PERSISTENCE\u UNIT\u NAME=“PERSISTENCE UNIT test”代码>
以及构建我的entityManager:
public static EntityManager getEntityManager() {
if (entityManager == null) {
final EntityManagerFactory factory = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME);
entityManager = factory.createEntityManager();
}
return entityManager;
}
您是否正在为实体使用注释或xml配置?注释和jpa persistence.xml。新DAO上有所有正确的注释。您的实体是否在persistence.xml
中?如果不需要,您需要将所有其他实体添加到这些实体中,为什么会有不同?请详细说明?我不能使用src/test/resources/META-INF/persistence.xml
,因为它与src/main/resources/META-INF/
中的名称冲突,如果您选择使用与src/main/resources/META-INF/
中实际名称不同的persistence单元
名称,则不会发生冲突,并且在测试过程中会自动选取它?假设我把它命名为src/test/resources/META-INF/persistence test.xml
我指的是persistence.xml
中的persistent unit
标记。您需要设置策略,以便在运行测试用例时注入测试持久性单元。哦,在本例中,我为测试和开发提供了不同的持久性单元,以便能够将它们定向到不同的位置。所有注释都会自动拾取,为什么不自动拾取?