【发布时间】:2016-12-26 15:53:39
【问题描述】:
堆栈跟踪:
Caused by: javax.persistence.PersistenceException: No Persistence provider for EntityManager named Sample
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:61)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:39)
at cm.cvs.service.UserInfoService.<init>(UserInfoService.java:32)
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 org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:147)
... 24 more
使用的罐子:
将 persistence.xml 放在 META-INF 文件夹下。
Persistence.xml
在persistence.xml中,我已经给出了provider属性。
【问题讨论】:
-
WTF 是那个“提供者”吗?您应该在那里指定 JPA Provider 的 IMPLEMENTATION 类,而不是接口。那么定义你的实现正在使用 DataNucleus 吗?日食链接?休眠?开放JPA?并在他们的文档中查找提供者名称
-
@ChristianW 它不是重复的。从“没有命名实体管理器的持久性提供程序”的答案中,我已经使用该答案来解决它。但它仍然无法正常工作。
-
所以在你当前的 persistence.xml 中你有
org.hibernate.ejb.HibernatePersistence 作为实现而不是 javax.persistence.spi.PersistenceProvider ? -
现在问题已经解决,我的 persistence.xml 中没有使用提供者标签