Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.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
Hibernate javax.persistence.PersistenceException:没有EntityManager命名示例的持久性提供程序_Hibernate_Jpa_Maven_Entitymanager - Fatal编程技术网

Hibernate javax.persistence.PersistenceException:没有EntityManager命名示例的持久性提供程序

Hibernate javax.persistence.PersistenceException:没有EntityManager命名示例的持久性提供程序,hibernate,jpa,maven,entitymanager,Hibernate,Jpa,Maven,Entitymanager,我正在使用Hibernate实体管理器。它抱怨找不到持久性提供程序,但仍将其记录在日志中: TRACE 2011-02-21 22:17:52,843 [main](Ejb3Configuration.java:321) org.hibernate.ejb.Ejb3Configuration - PersistenceMetadata(version=2.0) [ name: sample jtaDataSource: null nonJt

我正在使用Hibernate实体管理器。它抱怨找不到持久性提供程序,但仍将其记录在日志中:

    TRACE 2011-02-21 22:17:52,843 [main](Ejb3Configuration.java:321) org.hibernate.ejb.Ejb3Configuration - PersistenceMetadata(version=2.0) [
        name: sample
        jtaDataSource: null
        nonJtaDataSource: null
        transactionType: RESOURCE_LOCAL
        provider: org.hibernate.ejb.HibernatePeristence
        useQuotedIdentifiers: false
        classes[
        ]
        packages[
        ]
        mappingFiles[
        ]
        jarFiles[
        ]
        hbmfiles: 0
        properties[
            hibernate.connection.username: scott
            hibernate.connection.password: tiger
            hibernate.dialect: org.hibernate.dialect.OracleDialect
            hibernate.show_sql: true
            hibernate.connection.url: jdbc:oracle:thin:@localhost:1521:krsna
            hibernate.archive.autodetection: class, hbm
            hibernate.connection.driver_class: oracle.jdbc.driver.OracleDriver
        ]]
    Exception in thread "main" javax.persistence.PersistenceException: No Persistence provider for EntityManager named sample
        at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:54)
        at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:32)
        at EMPersistDemo2.main(EMPersistDemo2.java:26)
很明显,它找到了它,记录了它…但仍然抛出异常。 我错过什么了吗

我正在使用maven,并将persistence.xml放在src/main/resources/META-INF中。 其内容包括:

    <!-- persistence.xml -->
    <persistence ...>
       <persistence-unit name="sample">
        <provider>org.hibernate.ejb.HibernatePeristence</provider>
        <!-- Scan for annotated classes and Hibernate mapping XML files -->
        <properties>
           <property name="hibernate.archive.autodetection" value="class, hbm"/>
           <property name="hibernate.connection.driver_class" value="oracle.jdbc.driver.OracleDriver"/>
           <property name="hibernate.connection.url" value="jdbc:oracle:thin:@localhost:1521:krsna"/>
           <property name="hibernate.connection.username" value="scott"/>
           <property name="hibernate.connection.password" value="tiger"/>
           <property name="hibernate.dialect" value="org.hibernate.dialect.OracleDialect"/>
           <property name="hibernate.show_sql" value="true"/>
        </properties>
        </persistence-unit>

    </persistence>

闻起来hibernate jar文件不在类路径中,因为错误消息说“找不到持久性提供程序”

闻起来hibernate jar文件不在类路径中,因为错误消息说“找不到持久性提供程序”

我找到了关于java coderanch的问题的答案

persistence.xml
中我的持久性提供者的名字有一个输入错误:

我将
org.hibernate.ejb.HibernatePeristence
重命名为

org.hibernate.ejb.HibernatePersistence
                              ^---
它开始工作了


我正在发布我的答案,以便对其他人有所帮助。

我在java coderanch上找到了我问题的答案

persistence.xml
中我的持久性提供者的名字有一个输入错误:

我将
org.hibernate.ejb.HibernatePeristence
重命名为

org.hibernate.ejb.HibernatePersistence
                              ^---
它开始工作了


我发布我的答案是为了对其他人有所帮助。

我也面临同样的问题,但我得到了一个解决方案:缺少META-INF/services/javax.persistence.spi.PersistenceProvider文件。对于hibernate,它位于hibernate-entitymanager-XXX.jar中,因此,如果hibernate-entitymanager-XXX.jar不在类路径中,您也会遇到此错误。

我也遇到了同样的问题,但我得到了一个解决方案:缺少META-INF/services/javax.persistence.spi.PersistenceProvider文件。对于hibernate,它位于hibernate-entitymanager-XXX.jar中,因此,如果hibernate-entitymanager-XXX.jar不在类路径中,您也会遇到此错误。

如何运行代码?可能是META-INF的路径不在您的类路径中。我正在以简单的main()程序运行它。META-INF/persistence.xml位于src/main/resources中。这将被编译成D:/arun/mavenprojects/hibernateHawa/target/classes/META-INF/persistence.xml。当我打印CLASSPATH时,我看到D:/arun/mavenprojects/hibernateHawa/target/是第一个条目。显然,META-INF/persistence.xml位于类路径中。我不知道Ejb3Configurer从何处进入日志,并说它可以找到它。但是我的代码行Persistence.createEntity管理器(“sample”)引发异常。您如何运行代码?可能是META-INF的路径不在您的类路径中。我正在以简单的main()程序运行它。META-INF/persistence.xml位于src/main/resources中。这将被编译成D:/arun/mavenprojects/hibernateHawa/target/classes/META-INF/persistence.xml。当我打印CLASSPATH时,我看到D:/arun/mavenprojects/hibernateHawa/target/是第一个条目。显然,META-INF/persistence.xml位于类路径中。我不知道Ejb3Configurer从何处进入日志,并说它可以找到它。但是我的代码行Persistence.createEntity管理器(“sample”)…抛出异常。然后请接受此作为答案,以便其他人知道这是答案。谢谢,请接受这个答案,这样其他人就会知道这个答案。谢谢,这是可能的。我也有同样的问题。解决了。是的,这是可能的。我也有同样的问题。解决了。