Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法识别src/test/java中的实体_Java_Hibernate_Maven_Jpa_Entity - Fatal编程技术网

无法识别src/test/java中的实体

无法识别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]您需要为测试类使用一个单独的持久化单元(我建议在测试资源中使用一个单

作为测试的一部分,我正在创建一个DAO,它的唯一目的是在测试中。尝试运行单元测试时,我遇到以下错误:

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
标记。您需要设置策略,以便在运行测试用例时注入测试持久性单元。哦,在本例中,我为测试和开发提供了不同的持久性单元,以便能够将它们定向到不同的位置。所有注释都会自动拾取,为什么不自动拾取?