javax.la persistance.PersistenceException: Impossible de créer l'entité gestionnaire de l'usine
Quand je suis en train de créer un nouveau EntityManager pour enregistrer mes données, j'obtiens l'Erreur suivante:
javax.la persistance.PersistenceException: Impossible de créer l'entité gestionnaire de l'usine
I utilisation de la JPA-Fournisseur de Persistance de Hibernate...
malheureusement je ne pouvais pas trouver tout utile post dans stackoverflow /avec googler...
Quelqu'un a une idée de où la cause de l'erreur peut mentir?
Merci pour votre aide!
code-extraits:
création de l'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>
Pourrait être un problème dans votre base de données de configurations. Essayez de voir si vous pouvez accéder à la DB à l'aide d'un simple code java à l'aide de ces configurations. Placez votre persistence.xml dans l'emplacement \src\main\resources\META-INF\persistence.xml si vous utilisez maven.
merci Jay pour votre suggestion, j'ai réussi à le faire fonctionner seulement dans le second... 😀 (voir edit)
Si vous avez des soucis d'épeautre @NamedQuery, a t il a montré une erreur de compilation ?
malheureusement pas... de plus je devrais écrire "SÉLECTIONNEZ un DE la Cession d'un" au lieu de "SELECT * from Affectation"
merci Jay pour votre suggestion, j'ai réussi à le faire fonctionner seulement dans le second... 😀 (voir edit)
Si vous avez des soucis d'épeautre @NamedQuery, a t il a montré une erreur de compilation ?
malheureusement pas... de plus je devrais écrire "SÉLECTIONNEZ un DE la Cession d'un" au lieu de "SELECT * from Affectation"
OriginalL'auteur nicost | 2014-04-08
Vous devez vous connecter pour publier un commentaire.
(Réponse à la Question dans les commentaires et modifications. Voir Question sans réponses, mais problème résolu dans les commentaires (ou étendu dans le chat) )
L'OP a écrit:
OriginalL'auteur
J'ai rencontré la même erreur, et, malheureusement, la réponse ci-dessus n'a pas beaucoup m'aider. Alors, j'ai cherché d'autres erreurs signalées dans mon cas où j'ai trouvé cette erreur:
Je l'ai résolu comme spécifié le cette réponse et commentaires, par le remplacement de mon url de connexion avec : "jdbc:mysql://localhost:3306/db?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC"
Qui a résolu toutes les erreurs, y compris celui noté dans cette question:
javax.persistence.PersistenceException: Unable to build entity manager factory
J'espère que cela aide les autres à venir à travers le même problème, j'ai fait face.
OriginalL'auteur Loukan ElKadi
Car l'erreur peut indiquer beaucoup de différentes causes, il semble préférable d'arriver à la cause l'examen de la veille prolongée journal de DÉBOGAGE états (nous utilisons logback, mais il faut travailler dans toute autre structure de journalisation de la même façon):
Avec cela, vous obtenez beaucoup de sortie, mais qui peut déterminer le cours intéressants (il est très probable que vous apercevrez la cause ici déjà):
Qui pour nous a montré quelque chose comme ce qui suit (où
Mapping collection: foo.Bar.field -> some_tab_x
était l'info nous avons besoin de repérer les erreurs de mapping):De limiter l'enregistrement à nouveau (si il y a plusieurs endroits pour fixer votre JPA), nous avons ensuite utilisé quelque chose comme ce qui suit:
(E. g. dans Eclipse suffit d'utiliser
CTRL+SHIFT+T
à la recherche pour le type que vous aimez le débogage, si le journal de la sortie ne montre pas la complète classname)OriginalL'auteur Andreas Dietrich