没有命名 EntityManager 的持久性提供程序 [英] No Persistence provider for EntityManager named
本文介绍了没有命名 EntityManager 的持久性提供程序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在 META-INF
目录下使用 TopLink
拥有同名的 persistence.xml
.然后,我让我的代码调用它:
EntityManagerFactory emfdb = Persistence.createEntityManagerFactory("agisdb");
然而,我收到以下错误消息:
<前>2009-07-21 09:22:41,018 [main] 错误 - 名为 agisdb 的 EntityManager 没有持久性提供程序javax.persistence.PersistenceException:没有名为 agisdb 的 EntityManager 的持久性提供程序在 javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:89)在 javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:60)这是persistence.xml
:
它应该在类路径中.然而,我得到了上述错误.
解决方案
在
后,定义持久化提供者名称:
org.hibernate.ejb.HibernatePersistence
I have my persistence.xml
with the same name using TopLink
under the META-INF
directory.
Then, I have my code calling it with:
EntityManagerFactory emfdb = Persistence.createEntityManagerFactory("agisdb");
Yet, I got the following error message:
2009-07-21 09:22:41,018 [main] ERROR - No Persistence provider for EntityManager named agisdb javax.persistence.PersistenceException: No Persistence provider for EntityManager named agisdb at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:89) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:60)
Here is the persistence.xml
:
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="1.0">
<persistence-unit name="agisdb">
<class>com.agis.livedb.domain.AddressEntity</class>
<class>com.agis.livedb.domain.TrafficCameraEntity</class>
<class>com.agis.livedb.domain.TrafficPhotoEntity</class>
<class>com.agis.livedb.domain.TrafficReportEntity</class>
<properties>
<property name="toplink.jdbc.url" value="jdbc:mysql://localhost:3306/agisdb"/>
<property name="toplink.jdbc.driver" value="com.mysql.jdbc.Driver"/>
<property name="toplink.jdbc.user" value="root"/>
<property name="toplink.jdbc.password" value="password"/>
</properties>
</persistence-unit>
</persistence>
It should have been in the classpath. Yet, I got the above error.
解决方案
After <persistence-unit name="agisdb">
, define the persistence provider name:
<provider>org.hibernate.ejb.HibernatePersistence</provider>
这篇关于没有命名 EntityManager 的持久性提供程序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文