【问题标题】:Unable to locate persistence unit in web application无法在 Web 应用程序中找到持久性单元
【发布时间】: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 中没有使用提供者标签

标签: java spring hibernate jpa


【解决方案1】:

在 web 应用项目下做 JPA 时,将persistance.xml 放在“src/META-INF”路径中,并从 persistence.xml 中删除以下行

<provider>javax.persistence.spi.PersistenceProvider</provider>

注意:META-INF 文件夹是在 src 文件夹下新建的。

link 获得参考以解决错误。

首先尝试创建简单的 java jpa 应用程序来检查我是否也在这里得到相同的结果。

但它工作得很好。当我用我的 Web 应用程序 persistence.xml 替换 java 应用程序 persistence.xml 时,它抛出了同样的错误。

比较两个persistence.xml 后,我从Web 应用程序的persistence.xml 中删除了“javax.persistence.spi.PersistenceProvider”行,并保留在src/META-INF 下,然后它工作正常。

【讨论】:

  • 这完全忽略了根本原因......为您选择的 JPA 提供者设置“提供者”的正确值。当您的 CLASSPATH 中只有 1 个提供者时,您只能不放置“提供者”元素。一旦你有多个存在,那么这个“解决方案”就会失败
猜你喜欢
  • 1970-01-01
  • 2015-09-27
  • 1970-01-01
  • 2011-05-25
  • 2022-10-04
  • 1970-01-01
  • 2016-03-18
  • 2018-02-22
相关资源
最近更新 更多