单元测试中使用entitymanager的问题:没有名为

时间:2015-11-06 15:58:58

标签: hibernate unit-testing java-ee jpa

我确实遇到了与JPA持久性单元测试有关的问题。

当我运行JUnit测试时,我为EntityManager命名异常提供了一个No Persistence提供程序。我遵循这篇文章No Persistence provider for EntityManager named 中的建议,但似乎没有任何效果。

我从JBOSS Application Server运行我的单元测试。

我用这段代码获取我的EntityManager

   final String PERSISTENCE_UNIT_TEST = "RFIDPeopleProtoPersistenceTest";

   public PersonDAOTest( ) throws Exception{
    try{
        this.personDAO = new PersonDAO( );

        EntityManagerFactory factory = Persistence.createEntityManagerFactory( PERSISTENCE_UNIT_TEST );
            EntityManager em = factory.createEntityManager();  

            dao.setEntityManager( em );

    }catch( Exception e ){
        ...
    }
}

我在maven项目中使用了hibernate-entitymanger.jar(pom.xml)

        <dependency>
          <groupId>org.hibernate</groupId>
          <artifactId>hibernate-entitymanager</artifactId>
          <version>4.2.18.Final-redhat-2</version>
          <scope>test</scope>
    </dependency>

我的测试中有持久性规范文件(test-persistence.xml)

<persistence-unit name="RFIDPeopleProtoPersistenceTest" transaction-type="RESOURCE_LOCAL">
  <provider>org.hibernate.ejb.HibernatePersistence</provider>
  <jta-data-source>java:jboss/datasources/rfidpeopleProtoTestDS</jta-data-source>
  <class>org.rfidpeople.prototype.model.AbstractContactInfo</class>
  <properties>
    <property name="connection.driver_class" value="net.sourceforge.jtds.jdbc.Driver" />
    <property name="connection.url" value="jdbc:jtds:sqlserver://localhost:1433/RFIDPeople" />
   <property name="connection.username" value="sa" />
   <property name="connection.password" value="sa1234" />
   <property name="dialect" value="org.hibernate.dialect.SQLServerDialect" />
   <property name="hibernate.hbm2ddl.auto" value="create-drop" />
   <property name="hibernate.show_sql" value="false" />  
  </properties>

我的日食JBOSS开发者工作室中有这个文件系统

project file system

我目前没有找到问题的解决方案。

我会感谢你的帮助。

0 个答案:

没有答案