“没有持久性提供程序”;实体管理器“;命名为;“第一个”;JAVA

“没有持久性提供程序”;实体管理器“;命名为;“第一个”;JAVA,java,xml,hibernate,maven,Java,Xml,Hibernate,Maven,我正在使用PersistenseAPI连接到数据库 这是pom.xml dependendcies <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>4.2.8.Final</version> </dependency> <dependency> <

我正在使用PersistenseAPI连接到数据库

这是pom.xml dependendcies

 <groupId>org.hibernate</groupId>
    <artifactId>hibernate-core</artifactId>
    <version>4.2.8.Final</version>
  </dependency>
  <dependency>
    <groupId>postgresql</groupId>
    <artifactId>postgresql</artifactId>
    <version>9.1-901.jdbc4</version>
  </dependency>
  <dependency>
    <groupId>javax.persistence</groupId>
    <artifactId>persistence-api</artifactId>
    <version>1.0.2</version>
堆栈跟踪:

javax.persistence.PersistenceException: No Persistence provider for EntityManager named firstOne
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:69)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:47)
at Main.main(Main.java:14)
在持久性单元“firstOne”中,应该包括提供者。如下图所示:

<persistence-unit name="firstOne">
  <provider>org.hibernate.ejb.HibernatePersistence</provider>

org.hibernate.ejb.HibernatePersistence

您可能会错过实体声明。如果您在JavaEE上下文中,请确保在项目中有一些类被注释为实体。否则,在JAVA SE上下文中,您必须按照thiyaga所说的定义提供程序(请参见),并指定如下实体:

<persistence-unit name="OrderManagement">
    [...]
    <jar-file>MyOrderApp.jar</jar-file>
     or / and 
    <class>com.widgets.Order</class>
    <class>com.widgets.Customer</class>
</persistence-unit>

[...]
MyOrderApp.jar
或/及
com.widgets.Order
com.widgets.Customer
而且

如果可以的话,你应该使用JPA2


您不再需要
hibernate.cfg.xml
文件,只需将您的属性直接放在
persistene.xml
文件的
元素中,确保hibernate属性的前缀为
hibernate

请提供错误的完整堆栈跟踪。javax.persistence.PersistenceException:在javax.persistence.persistence.createEntityManager工厂(persistence.java:69)没有名为firstOne的EntityManager持久化提供程序在javax.persistence.persistence.createEntityManagerFactory(persistence.java:47)在Main.Main(Main.java:14)上包括但相同的问题您可以用修改后的persistence.xml更新您的问题吗?我会按照您所说的进行更新您可以检查此url并查看您的问题是否与此相关吗?在您可以添加的SE上下文中,在持久性上下文初始化期间,您应该在服务器启动日志中看到一个错误
hibernate.archive.autodetection
属性,如Pascal Thivent所述
javax.persistence.PersistenceException: No Persistence provider for EntityManager named firstOne
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:69)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:47)
at Main.main(Main.java:14)
<persistence-unit name="firstOne">
  <provider>org.hibernate.ejb.HibernatePersistence</provider>
<persistence-unit name="OrderManagement">
    [...]
    <jar-file>MyOrderApp.jar</jar-file>
     or / and 
    <class>com.widgets.Order</class>
    <class>com.widgets.Customer</class>
</persistence-unit>