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

时间:2014-04-16 11:03:46

标签: java hibernate maven jpa entity

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

java.lang.IllegalArgumentException: Unknown entity:

似乎当实体驻留在src / test / java文件夹中时,它们不会被拾取。将实体移动到src / main / java时,一切正常。问题是这个DAO仅用于测试,我真的不想把它放在主要版本中。有办法解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

[如果您正在使用JPA]您需要为测试类创建一个单独的持久单元(我建议在测试资源中有一个单独的persistence.xml),并且需要在持久性中提及所有实际的ORM实体class标记中的.xml。

例如,我遵循的策略,我创建了一个TestUtility,并且我使用CDI注入注入持久单元

private static final String PERSISTENCE_UNIT_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;
}