javax.die Persistenz.PersistenceException: kann Nicht zum erstellen von entity-manager-factory
Wenn ich versuche eine neue zu erstellen EntityManager zu bestehen meine Daten, erhalte ich die folgende Fehlermeldung:
javax.die Persistenz.PersistenceException: kann Nicht zum erstellen von entity-manager-factory
Ich mit dem JPA-Persistenz-Provider der Hibernate...
leider konnte ich keinen hilfreichen Beitrag in stackoverflow /mit googeln...
Hat jemand eine Idee, wo die Fehlerursache liegen könnte?
Danke für Eure Hilfe!
code-snippets:
Erstellung von entitymanager
EntityManager em;
EntityManagerFactory fact = Persistence.createEntityManagerFactory("bachelordebug"); //Here it crashes
em = fact.createEntityManager();
stacktrace
javax.persistence.PersistenceException: Unable to build entity manager factory
at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:81)
at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:54)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:55)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:39)
at com.uzh.platform.api.util.AssignmentUtil.findAll(AssignmentUtil.java:20)
at com.uzh.platform.api.services.GetAssignments.getAssignments(GetAssignments.java:22)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java:81)
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:151)
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:171)
at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:152)
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:104)
at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:402)
at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:349)
at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:106)
at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:259)
at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271)
at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267)
at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
at org.glassfish.jersey.internal.Errors.process(Errors.java:267)
at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:318)
at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:236)
at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1010)
at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:373)
at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:382)
at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:345)
at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:220)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1221)
at com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFilter.java:156)
at com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFilter.java:233)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:399)
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:766)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450)
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.headerComplete(HttpConnection.java:928)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549)
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)
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="bachelordebug" transaction-type="RESOURCE_LOCAL">
<!-- <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider> -->
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
<class>com.uzh.platform.data.dao.Assignment</class>
<properties>
<property name="javax.persistence.jdbc.driver" value="org.postgresql.Driver"/>
<property name="javax.persistence.jdbc.url" value="jdbc:postgresql://127.0.0.1:5432/bachelor"/>
<property name="javax.persistence.jdbc.user" value="bachelor"/>
<property name="javax.persistence.jdbc.password" value="bachelor14"/>
<property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect"/>
<property name="hibernate.hbm2ddl.auto" value="update"/>
<property name="hibernate.connection.release_mode" value="after_statement"/>
<property name="connection.pool_size" value="1"/>
<property name="dialect" value="org.postgresql.Driver"/>
<property name="current_session_context_class" value="thread"/>
<property name="cache.provider_class" value="org.hibernate.cache.NoCacheProvider"/>
<property name="show_sql" value="true"/>
</properties>
</persistence-unit>
- Könnte ein problem in deinem DB-Konfigurationen. Versuchen Sie, um zu sehen, wenn Sie Zugriff auf die DB mittels eines einfachen java-code unter Verwendung dieser Konfigurationen. Platzieren Sie Ihre persistence.xml in das Verzeichnis \src\main\resources\META-INF\persistence.xml wenn Sie mit maven.
- danke Jay für deine Anregung - ich habe es geschafft, es funktioniert nur in dieser Sekunde... 😀 (siehe edit)
- Wenn Sie miss-geschrieben @NamedQuery, hat n ' T zeigte es einen compile-Fehler ?
- leider nicht... zusätzlich soll ich schreiben "WÄHLEN Sie ein AUS Zuordnung a" anstelle von "SELECT * FROM Belegung"
Du musst angemeldet sein, um einen Kommentar abzugeben.
(Frage beantwortet in den Kommentaren und Bearbeitungen. Sehen Frage mit Nein Antworten, aber Problem gelöst, in den Kommentaren (oder erweitert im chat) )
Der OP schrieb:
Traf ich den gleichen Fehler, und leider ist die obige Antwort hat mir nicht helfen, eine Menge. So sah ich zu den anderen gemeldeten Fehler in meinem Fall, wo ich gefunden dieser Fehler:
Ich löste es, wie angegeben, die diese Antworten und Kommentare, durch das ersetzen meine Verbindungs-url mit : "jdbc:mysql://localhost:3306/db?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC"
Gelöst, dass alle Fehler, einschließlich der einen Stelle in dieser Frage:
javax.persistence.PersistenceException: Unable to build entity manager factory
Ich hoffe, dass dies anderen hilft, kommt auf das gleiche Problem, das ich konfrontiert.
Da der Fehler kann viele verschiedene Ursachen haben, es scheint am besten, um die Ursache Prüfung der Hibernate-DEBUG-log-Anweisungen (wir verwenden logback, aber es sollte funktionieren in jedem anderen logging-framework ähnlich):
Damit erhalten Sie viel Leistung, aber können bestimmen, dass die eigentlich interessanten Klassen (es ist sehr wahrscheinlich, dass Sie vor Ort die Sache hier schon):
Welcher uns zeigte so etwas wie die folgenden (wobei
Mapping collection: foo.Bar.field -> some_tab_x
war die info, die wir brauchten, um vor Ort das fehlerhafte mapping):Beschränken, die Protokollierung wieder (wenn es mehrere Orte, um das JPA-mapping), dann wurde so etwas wie die folgenden:
(E. g. in Eclipse-verwenden Sie einfach
CTRL+SHIFT+T
zu suchen, für die Art, die Sie mögen, zu Debuggen, wenn Sie die log-Ausgabe zeigt nicht die komplette classname)