无法配置EntityManagerFactory [英] Unable to configure EntityManagerFactory

查看:141
本文介绍了无法配置EntityManagerFactory的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是JPA&冬眠。在我的Web应用程序中,我将JDBC代码更改为JPA。运行网络应用程序时,我收到了大量错误。但根据我在JPA和Hibernate方面的知识,我认为下面的两个错误代表了我的大部分问题。无法配置EntityManagerFactory

  • 16047 [31149935 @ qtp-23671010-1]错误组织。 hibernate.util.XMLHelper - 解析XML时出错:XML InputStream(2)cvc-complex-type.3.1:元素'entity-mappings'的属性'version'的值'2.0'对于相应的属性使用无效。属性版本的固定值为'1.0'。



  • 我在网上搜索了很多这些错误。但我找不到一个解决方案。我已经包含了所有必需的JAR并将persistence.xml添加到类路径中。我无法找到原因。



    这里列出了控制台错误的完整列表:

      SLF4J:类路径包含多个SLF4J绑定。 
    SLF4J:在[jar:file:/ C:/ Documents%20and%20Settings / tamilvendhank / Local%20Settings / Temp / Jetty_127_0_0_ 1_8080_ExpMgmtWeb.war__ExpMgmtWeb__w96xvk_3923622842201679764 / webapp / WEB-INF / lib / slf4j-log4j12.jar中找到绑定!/org/slf4j/impl/StaticLoggerBinder.class]
    SLF4J:在[jar:file:/ C:/Documents%20and%20Settings/tamilvendhank/Local%20Settings/Temp/Jetty_127_0_0_1_8080_ExpMgmtWeb.war__ExpMgmtWeb__w96xvk_3923622842201679764/webapp/中找到绑定WEB-INF / lib / slf4j-simple-1.5.11.jar!/org/slf4j/impl/StaticLoggerBinder.class]
    SLF4J:请参阅http://www.slf4j.org/codes.html#multiple_bindings一个解释。
    15360 [31149935 @ qtp-23671010-1] INFO org.hibernate.cfg.annotations.Version - Hibernate Annotations 3.4.0.CR1
    15375 [31149935 @ qtp-23671010-1] INFO org.hibernate .cfg.Environment - Hibernate 3.3.0.CR1
    15375 [31149935 @ qtp-23671010-1] INFO org.hibernate.cfg.Environment - 找不到hibernate.properties
    15375 [31149935 @ qtp-23671010 -1] INFO org.hibernate.cfg.Environment - 字节码提供程序名称:cglib
    15375 [31149935 @ qtp-23671010-1] INFO org.hibernate.cfg.Environment - 使用JDK 1.4 java.sql.Timestamp处理
    15469 [31149935 @ QTP-23671010-1] INFO org.hibernate.annotations.common.Version - 休眠共享注释3.1.0.CR1
    15469 [31149935 @ QTP-23671010-1] INFO org.hibernate作为.ejb.Version - Hibernate EntityManager 3.4.0.CR1
    16047 [31149935 @ qtp-23671010-1] ERROR org.hibernate.util.XMLHelper - 解析XML时出错:XML InputStream(2)cvc-complex-type。 3.1:元素'entity-mappings'属性'version'的值'2.0'不是va关于相应的属性用法。属性'版本'具有固定值'1.0'。
    2010-09-19 11:23:40.265:WARN :: Error for /ExpMgmtWeb/dwr/call/plaincall/ExpenseDetailsManagement.getexpenseList.dwr
    java.lang.ExceptionInInitializerError
    at sun。 reflect.NativeConstructorAccessorImpl.newInstance0(本地方法)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang。反射.Constructor.newInstance(未知源)
    在java.lang.Class.newInstance0(未知源)
    在java.lang.Class.newInstance(未知源)
    在org.directwebremoting。在org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:344)上
    $ or $。$ b $在org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter。
    at org.directwebremoting.servlet.PlainCallHandler.handle(PlainCallHandler.java:52)
    at org.directwebremoting.servlet.UrlProcessor.handle(UrlProcessor.java:101)
    在org.d irectwebremoting.servlet.DwrServlet.doPost(DwrServlet.java:144)在javax.servlet.http.HttpServlet.service上
    (HttpServlet.java:641)在javax.servlet.http.HttpServlet.service上
    ( HttpServlet.java:722)
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java: 390)
    at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
    at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
    at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
    at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
    at org .mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
    at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
    at org.mortbay.jetty .handler.HandlerWrapper.handle(HandlerWrapper.java:152)
    at org.mortbay.jetty.Server.handle(Serve r.java:326)在org.mortbay.jetty.HttpConnection.handleRequest
    (HttpConnection.java:542)在org.mortbay.jetty.HttpConnection $ RequestHandler.content
    (HttpConnection.java:943)
    at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756)
    at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
    at org.mortbay .jetty.HttpConnection.handle(HttpConnection.java:404)
    at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410)
    at org.mortbay.thread.QueuedThreadPool $ PoolThread .run(QueuedThreadPool.java:582)
    2010-09-19 11:23:40.265:WARN ::嵌套在java.lang.ExceptionInInitializerError中:
    javax.persistence.PersistenceException:[PersistenceUnit:ExpensePersistentUnit]无法在org.hibernate.ejb.Ejb3Configuration.configure中配置EntityManagerFactory
    (Ejb3Configuration.java:265)$ or $ $ $ $ b在org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:125)
    在javax.persistence.Persistenc e.createEntityManagerFactory(Persistence.java:51)
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:33)
    at com.pricar.JPAInteg.ExpenseDetailsManagement。< clinit>(ExpenseDetailsManagement.java :21)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source )
    在java.lang.reflect.Constructor.newInstance(未知源)
    在java.lang.Class.newInstance0(未知源)
    在java.lang.Class.newInstance(未知源)维持在org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:344)
    org.directwebremoting.create.NewCreator.getInstance(NewCreator.java:66)
    。在组织
    。 directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:279)
    在org.directwebremoting.servlet.PlainCallHandler.handle(PlainCallHandler.java:52)
    在org.directw ebremoting.servlet.UrlProcessor.handle(UrlProcessor.java:101)
    at org.directwebremoting.servlet.DwrServlet.doPost(DwrServlet.java:144)
    at javax.servlet.http.HttpServlet.service( HttpServlet.java:641)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390)
    at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
    at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
    at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
    at org.mortbay .jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
    at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
    at org.mortbay.jetty.handler .HandlerCollection.handle(HandlerCollection.java:114)
    at org.mortbay.jetty.handler.HandlerWrapper.ha ndle(HandlerWrapper.java:152)
    at org.mortbay.jetty.Server.handle(Server.java:326)
    at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
    在org.mortbay.jetty.HttpConnection $ RequestHandler.content(HttpConnection.java:943)
    在org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756)
    。在组织.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
    at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
    at org.mortbay.io.nio.SelectChannelEndPoint .run(SelectChannelEndPoint.java:410)
    at org.mortbay.thread.QueuedThreadPool $ PoolThread.run(QueuedThreadPool.java:582)

     <?xml version =1.0encoding =UTF-8?> 
    <持久性>
    < persistence-unit name =ExpensePersistentUnit>
    < provider> org.hibernate.ejb.HibernatePersistence< / provider>
    < class> com.pricar.JPAInteg.Role< / class>
    < class> com.pricar.JPAInteg.User< / class>
    < class> com.pricar.JPAInteg.Userdetail< / class>
    < class> com.pricar.JPAInteg.Category< / class>
    < class> com.pricar.JPAInteg.Expens< / class>
    < class> com.pricar.JPAInteg.Leavetable< / class>
    < class> com.pricar.JPAInteg.Permissiontoken< / class>
    < class> com.pricar.JPAInteg.Roletokenassociation< / class>
    < class> com.pricar.JPAInteg.UserPK< / class>
    <属性>
    < property name =hibernate.connection.urlvalue =jdbc:mysql:// localhost / officemgmt/>
    < property name =hibernate.connection.driver_classvalue =com.mysql.jdbc.Driver/>
    < property name =hibernate.connection.passwordvalue =1234/>
    < property name =hibernate.connection.usernamevalue =root/>
    < property name =hibernate.hbm2ddl.autovalue =update/>
    < property name =hibernate.show_sqlvalue =true/>
    < / properties>
    < / persistence-unit>
    < /余辉>






    更新:

      javax.persistence.PersistenceException:[PersistenceUnit:ExpensePersistentUnit]无法在org.hibernate.ejb.Ejb3Configuration配置的EntityManagerFactory 
    .configure(Ejb3Configuration.java:371)
    at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:55)
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:51)
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:33)
    at com.pricar.JPAInteg.ExpenseDetailsManagement。< clinit>(ExpenseDetailsManagement.java:21)
    at sun.reflect .NativeConstructorAccessorImpl.newInstance0(本地方法)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect .Constructor.newInstance(未知源)
    在java .lang.Class.newInstance0(Unknown Source)
    at java.lang.Class.newInstance(Unknown Source)






    更新2:

    我有一些基本问题:


    1. 如果使用JPA批注,那么涉及JPA + Hibernate组合的多少个xml文件?
      我只有persistence.xml。但总共3(dwr.xml& web.xml)

    2. 如果我使用JPA annotaions,是否需要hibernate.cfg.xml。因为我直到现在才添加它。


    3. 如果您使用JPA 2.0& Hibernate的!因为我的文件超过15个。

    4. 您正在使用一个JPA 1.0实现,你需要提供一个符合JPA 1.0的
      orm.xml (注意版本属性和其他东西):

       <?xml version =1.0encoding =UTF-8?> 
      < entity-mappings
      xmlns =http://java.sun.com/xml/ns/persistence/orm
      xmlns:xsi =http://www.w3 .org / 2001 / XMLSchema-instance
      xsi:schemaLocation =http://java.sun.com/xml/ns/persistence/orm http://java.sun.com/xml/ns/persistence /orm_1_0.xsd
      version =1.0>
      ...
      < / entity-mappings>

      您可能看起来像:

       <?xml version =1.0encoding =UTF-8?> 
      < entity-mappings
      xmlns =http://java.sun.com/xml/ns/persistence/orm
      xmlns:xsi =http://www.w3 .org / 2001 / XMLSchema-instance
      xsi:schemaLocation =http://java.sun.com/xml/ns/persistence/orm http://java.sun.com/xml/ns/persistence /orm_2_0.xsd
      version =2.0>
      ...
      < / entity-mappings>

      这是正确的... 如果您使用的是JPA 2.0提供程序。但是说实话,我不知道你为什么要提供一个 orm.xml ,你通常在使用注释时不需要XML映射文件。



      引用




      • JPA 1.0规范


        • 10.2 XML模式部分

      • JPA 2.0规范


        • 12.3 XML模式部分


      >





      感谢您的回复,并对orm.xml感到抱歉。我的热情是显示persistence.xml的位置。我没有使用XML映射。该orm.xml是自动生成的。我应该删除该文件吗?


      我会尝试删除 orm.xml 的确, entity-mappings orm.xml 的根元素,这就是错误所在。


      如果您使用的是JPA 2.0提供程序,您的意思是什么?提供者的意思是,Hibernate?

      JPA只是一个API。要使用JPA,您需要实现此API,并且此类实现称为持久性提供程序(EcliseLink,Hibernate,OpenJPA)。就你而言,你使用的是Hibernate EntityManager 3.4.0.GA,它是一个JPA 1.0实现。


      我需要做些什么来改变到JPA 2.0?通过添加javax.persistence_2.0.0.jar或通过更改使用JPA 2.0的hibernate?

      两者都必须使用Hibernate EntityManager 3.5+(及其依赖项,其中包括javax.persistence_2.0.0。 jar)。


      I am new to JPA & hibernate. In my web-app i have changed my JDBC codes to JPA. While running the web-app i am getting a BIG list of errors. But from my knowledge in JPA and Hibernate, I think the two errors below represent most of my problem.

      • Unable to configure EntityManagerFactory
      • 16047 [31149935@qtp-23671010-1] ERROR org.hibernate.util.XMLHelper - Error parsing XML: XML InputStream(2) cvc-complex-type.3.1: Value '2.0' of attribute 'version' of element 'entity-mappings' is not valid with respect to the corresponding attribute use. Attribute 'version' has a fixed value of '1.0'.

      I have searched a lot for these errors on the web. But I can't find one solution. I have included all the required JARs and added persistence.xml to the class path. I am not able to find the reason.

      Here my full list of console errors:

      SLF4J: Class path contains multiple SLF4J bindings.
      SLF4J: Found binding in [jar:file:/C:/Documents%20and%20Settings/tamilvendhank/Local%20Settings/Temp/Jetty_127_0_0_    1_8080_ExpMgmtWeb.war__ExpMgmtWeb__w96xvk_3923622842201679764/webapp/WEB-INF/lib/slf4j-log4j12.jar!/org/slf4j/impl/StaticLoggerBinder.class]
      SLF4J: Found binding in [jar:file:/C:/Documents%20and%20Settings/tamilvendhank/Local%20Settings/Temp/Jetty_127_0_0_1_8080_ExpMgmtWeb.war__ExpMgmtWeb__w96xvk_3923622842201679764/webapp/WEB-INF/lib/slf4j-simple-1.5.11.jar!/org/slf4j/impl/StaticLoggerBinder.class]
      SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
      15360 [31149935@qtp-23671010-1] INFO  org.hibernate.cfg.annotations.Version  -    Hibernate Annotations 3.4.0.CR1
      15375 [31149935@qtp-23671010-1] INFO  org.hibernate.cfg.Environment  - Hibernate 3.3.0.CR1
      15375 [31149935@qtp-23671010-1] INFO  org.hibernate.cfg.Environment  - hibernate.properties not found
      15375 [31149935@qtp-23671010-1] INFO  org.hibernate.cfg.Environment  - Bytecode provider name : cglib
      15375 [31149935@qtp-23671010-1] INFO  org.hibernate.cfg.Environment  - using JDK 1.4 java.sql.Timestamp handling
      15469 [31149935@qtp-23671010-1] INFO  org.hibernate.annotations.common.Version  - Hibernate Commons Annotations 3.1.0.CR1
      15469 [31149935@qtp-23671010-1] INFO  org.hibernate.ejb.Version  - Hibernate EntityManager 3.4.0.CR1
      16047 [31149935@qtp-23671010-1] ERROR org.hibernate.util.XMLHelper  - Error parsing XML: XML InputStream(2) cvc-complex-type.3.1: Value '2.0' of attribute 'version' of element 'entity-mappings' is not valid with respect to the corresponding attribute use. Attribute 'version' has a fixed value of '1.0'.
      2010-09-19 11:23:40.265:WARN::Error for /ExpMgmtWeb/dwr/call/plaincall/ExpenseDetailsManagement.getexpenseList.dwr
      java.lang.ExceptionInInitializerError
      at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
      at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
      at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
      at java.lang.reflect.Constructor.newInstance(Unknown Source)
      at java.lang.Class.newInstance0(Unknown Source)
      at java.lang.Class.newInstance(Unknown Source)
      at org.directwebremoting.create.NewCreator.getInstance(NewCreator.java:66)
      at org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:344)
      at org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:279)
      at org.directwebremoting.servlet.PlainCallHandler.handle(PlainCallHandler.java:52)
      at org.directwebremoting.servlet.UrlProcessor.handle(UrlProcessor.java:101)
      at org.directwebremoting.servlet.DwrServlet.doPost(DwrServlet.java:144)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
      at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
      at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390)
      at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
      at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
      at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
      at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
      at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
      at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
      at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
      at org.mortbay.jetty.Server.handle(Server.java:326)
      at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
      at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:943)
      at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756)
      at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
      at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
      at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410)
      at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
      2010-09-19 11:23:40.265:WARN::Nested in java.lang.ExceptionInInitializerError:
      javax.persistence.PersistenceException: [PersistenceUnit: ExpensePersistentUnit] Unable to configure EntityManagerFactory
      at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:265)
      at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:125)
      at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:51)
      at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:33)
      at com.pricar.JPAInteg.ExpenseDetailsManagement.<clinit>(ExpenseDetailsManagement.java:21)
      at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
      at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
      at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
      at java.lang.reflect.Constructor.newInstance(Unknown Source)
      at java.lang.Class.newInstance0(Unknown Source)
      at java.lang.Class.newInstance(Unknown Source)
      at org.directwebremoting.create.NewCreator.getInstance(NewCreator.java:66)
      at org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:344)
      at org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:279)
      at org.directwebremoting.servlet.PlainCallHandler.handle(PlainCallHandler.java:52)
      at org.directwebremoting.servlet.UrlProcessor.handle(UrlProcessor.java:101)
      at org.directwebremoting.servlet.DwrServlet.doPost(DwrServlet.java:144)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
      at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
      at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390)
      at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
      at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
      at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
      at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
      at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
      at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
      at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
      at org.mortbay.jetty.Server.handle(Server.java:326)
      at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
      at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:943)
      at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756)
      at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
      at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
      at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410)
      at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
      

       <?xml version="1.0" encoding="UTF-8"?>
       <persistence>
      <persistence-unit name="ExpensePersistentUnit">
       <provider>org.hibernate.ejb.HibernatePersistence</provider>
          <class>com.pricar.JPAInteg.Role</class>
          <class>com.pricar.JPAInteg.User</class>
          <class>com.pricar.JPAInteg.Userdetail</class>
          <class>com.pricar.JPAInteg.Category</class>
          <class>com.pricar.JPAInteg.Expens</class>
          <class>com.pricar.JPAInteg.Leavetable</class>
          <class>com.pricar.JPAInteg.Permissiontoken</class>
          <class>com.pricar.JPAInteg.Roletokenassociation</class>
          <class>com.pricar.JPAInteg.UserPK</class>
       <properties>
          <property name="hibernate.connection.url" value="jdbc:mysql://localhost/officemgmt"/>
          <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"></property>
          <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
          <property name="hibernate.connection.password" value="1234"/>
          <property name="hibernate.connection.username" value="root"/>
          <property name="hibernate.hbm2ddl.auto" value="update"/>
          <property name="hibernate.show_sql" value="true"/>
       </properties>
       </persistence-unit> 
       </persistence>
      


      Update:

      javax.persistence.PersistenceException: [PersistenceUnit: ExpensePersistentUnit] Unable to configure EntityManagerFactory
      at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:371)
      at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:55)
      at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:51)
      at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:33)
      at com.pricar.JPAInteg.ExpenseDetailsManagement.<clinit>(ExpenseDetailsManagement.java:21)
      at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
      at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
      at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
      at java.lang.reflect.Constructor.newInstance(Unknown Source)
      at java.lang.Class.newInstance0(Unknown Source)
      at java.lang.Class.newInstance(Unknown Source)
      


      Update 2:

      I have some basic questions:

      1. How many xml files involved in JPA+Hibernate combination, if JPA annotations were used? i am having just persistence.xml. But totally 3(dwr.xml & web.xml)

      2. Is hibernate.cfg.xml needed, if i use JPA annotaions. Because, i didnt added it till now.

      3. Shall you give me the list of basic JAR file names, in case of using JPA 2.0 & Hibernate!!! Because, i am having more than 15 files.

      解决方案

      You are using a JPA 1.0 implementation, you need to provide a JPA 1.0 compliant orm.xml (note the version attribute amongst other things):

      <?xml version="1.0" encoding="UTF-8"?>
      <entity-mappings 
        xmlns="http://java.sun.com/xml/ns/persistence/orm"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm http://java.sun.com/xml/ns/persistence/orm_1_0.xsd"
        version="1.0">
        ...
      </entity-mappings>
      

      Yours probably looks like:

      <?xml version="1.0" encoding="UTF-8"?>
      <entity-mappings
        xmlns="http://java.sun.com/xml/ns/persistence/orm"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm http://java.sun.com/xml/ns/persistence/orm_2_0.xsd"
        version="2.0">
        ...
      </entity-mappings>
      

      Which is correct... if you are using a JPA 2.0 provider.

      But to be honest, I don't know why you are providing an orm.xml, you usually don't need an XML mapping file when using annotations.

      References

      • JPA 1.0 Specifciation
        • Section "10.2 XML Schema"
      • JPA 2.0 Specifciation
        • Section "12.3 XML Schema"

      Thanks for your reply and sorry for the orm.xml. My intense is to show the location of persistence.xml. I am not using XML mapping. That orm.xml is auto generated. Shall I remove that file?

      I would try to remove the orm.xml indeed, entity-mappings is the root element of the orm.xml, that's what the error is about.

      What do you mean in "if you are using a JPA 2.0 provider"? Provider means, Hibernate??

      JPA is just an API. To use JPA, you need an implementation of this API and such implementations are called persistence providers (EcliseLink, Hibernate, OpenJPA). In your case, you are using Hibernate EntityManager 3.4.0.GA which is a JPA 1.0 implementation.

      What I have to do to change to JPA 2.0? by adding javax.persistence_2.0.0.jar or by change the hibernate which is using JPA 2.0??

      Both, you'd have to use Hibernate EntityManager 3.5+ (and its dependencies, and this includes the javax.persistence_2.0.0.jar).

      这篇关于无法配置EntityManagerFactory的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

    查看全文
    登录 关闭
    扫码关注1秒登录
    发送“验证码”获取 | 15天全站免登陆