2011-02-26 37 views
0

我一直在摔跤这个错误的最后几天。请有人指出我出错的地方。没有EntityManager的持久性提供者 - 臭名昭着的错误

我想用eclipselink使用JPA。它运行良好。 要使用Hibernate作为持久性提供检查与JPA的行为,我改变了pe​​rsitence.xml和我得到了臭名昭著的错误“没有持久性提供EntityManager的命名usinghibernate”

我的persistence.xml

<?xml version="1.0" encoding="UTF-8"?> 
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"> 
    <persistence-unit name="usinghibernate"> 
    <provider>org.hibernate.ejb.HibernatePeristence</provider> 
    <class>arun.ucerelay.datastructures.XVMUpdateProfile</class> 
    <class>arun.ucerelay.datastructures.XVMUpdateProfileItem</class> 

    <!-- Scan for annotated classes and Hibernate mapping XML files --> 
    <properties> 
     <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> 

Java程序:

public static void main(String args[]) { 
     try { 
      EntityManagerFactory emf = Persistence.createEntityManagerFactory("usinghibernate"); 
      // First unit of work 
      EntityManager em = emf.createEntityManager(); 
... 
... 

这里是我做过什么让休眠罐: 我包括2只依赖于Maven的pom.xml中:

... 
    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-entitymanager</artifactId> 
     <version>3.5.6-Final</version> 
    </dependency> 

    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-log4j12</artifactId> 
     <version>1.5.2</version> 
    </dependency> 
    ... 

在日志中,其明确表示,它是能够找到META-INF/persistence.xml中和持久性单元,并再次就抱怨说,它不找到持久性单元。

TRACE 2011-02-26 00:50:31,765 [main](PersistenceXmlLoader.java:112) org.hibernate.ejb.packaging.PersistenceXmlLoader - Validate with persistence_2_0.xsd schema on file file:/C:/arun/eclipse/workspace/practicewitheclipselink/target/classes/META-INF/persistence.xml 
TRACE 2011-02-26 00:50:31,781 [main](PersistenceXmlLoader.java:117) org.hibernate.ejb.packaging.PersistenceXmlLoader - Found error with persistence_2_0.xsd schema on file file:/C:/arun/eclipse/workspace/practicewitheclipselink/target/classes/META-INF/persistence.xml 
TRACE 2011-02-26 00:50:31,781 [main](PersistenceXmlLoader.java:127) org.hibernate.ejb.packaging.PersistenceXmlLoader - Validate with persistence_1_0.xsd schema on file file:/C:/arun/eclipse/workspace/practicewitheclipselink/target/classes/META-INF/persistence.xml 
TRACE 2011-02-26 00:50:31,781 [main](PersistenceXmlLoader.java:239) org.hibernate.ejb.packaging.PersistenceXmlLoader - Persistent Unit name from persistence.xml: usinghibernate 
TRACE 2011-02-26 00:50:31,781 [main](Ejb3Configuration.java:321) org.hibernate.ejb.Ejb3Configuration - PersistenceMetadata(version=1.0) [ 
    name: usinghibernate 
    jtaDataSource: null 
    nonJtaDataSource: null 
    transactionType: RESOURCE_LOCAL 
    provider: org.hibernate.ejb.HibernatePeristence 
    useQuotedIdentifiers: false 
    classes[ 
     arun.ucerelay.datastructures.XVMUpdateProfile  arun.ucerelay.datastructures.XVMUpdateProfileItem ] 
    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.connection.driver_class: oracle.jdbc.driver.OracleDriver 
    ]] 
Feb 26, 2011 12:50:31 AM UpdateProfileMain main 
WARNING: Arun Could not load profiles : No Persistence provider for EntityManager named usinghibernate 
Feb 26, 2011 12:50:31 AM UpdateProfileMain main 
WARNING: Arun Could not load profiles : null 

回答

0

org.hibernate.ejb.HibernatePeristence

也许应该由

org.hibernate.ejb.HibernatePersistence 
           ^--- 
+0

正确更换。非常感谢你。 – 2011-02-26 23:32:07

相关问题