无法配置EntityManagerFactory [英] Unable to configure EntityManagerFactory
问题描述
我是JPA&冬眠。在我的Web应用程序中,我将JDBC代码更改为JPA。运行网络应用程序时,我收到了大量错误。但根据我在JPA和Hibernate方面的知识,我认为下面的两个错误代表了我的大部分问题。无法配置EntityManagerFactory
我在网上搜索了很多这些错误。但我找不到一个解决方案。我已经包含了所有必需的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:
我有一些基本问题:
-
如果使用JPA批注,那么涉及JPA + Hibernate组合的多少个xml文件?
我只有persistence.xml。但总共3(dwr.xml& web.xml)
-
如果我使用JPA annotaions,是否需要hibernate.cfg.xml。因为我直到现在才添加它。
-
如果您使用JPA 2.0& Hibernate的!因为我的文件超过15个。
您正在使用一个JPA 1.0实现,你需要提供一个符合JPA 1.0的 - JPA 1.0规范
- 10.2 XML模式部分
JPA 2.0规范 - 12.3 XML模式部分
- 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'.
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)
Is hibernate.cfg.xml needed, if i use JPA annotaions. Because, i didnt added it till now.
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.
- JPA 1.0 Specifciation
- Section "10.2 XML Schema"
- JPA 2.0 Specifciation
- Section "12.3 XML Schema"
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映射文件。
引用
感谢您的回复,并对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.
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:
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
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屋!