【问题标题】:Sometimes getting PersistenceException: No Persistence provider for EntityManager有时会出现 PersistenceException: No Persistence provider for EntityManager
【发布时间】:2012-01-31 09:14:56
【问题描述】:

关于这个 PersistenceException 有很多问题,但我还没有看到一些,具体的代码行只是有时会抛出这个异常(但不是随机的:-)。

那么,你有什么想法,为什么一旦我的简单应用程序发现提供程序正常,但后来就不行了?

NetBeans IDE 7.0.1,NetBeans 平台应用程序,使用持久性链接库和 Derby 嵌入。

我正在尝试this CRUD creatable capabilities "tutorial" by Geertjan,但在保存新行程时我得到了 PersistenceException:

at javax.persistence.Persistence.createEntityManagerFactory(Unknown Source)
at javax.persistence.Persistence.createEntityManagerFactory(Unknown Source)
at org.mv.mm.api.TripSearchDAO.createTransactionalEntityManager(TripSearchDAO.java:61)
at org.mv.mm.api.TripSearchDAO.create(TripSearchDAO.java:41)
at org.mv.mm.api.TripQuery$3.create(TripQuery.java:69)
[catch] at org.mv.mm.api.TripType.create(TripType.java:64)

但在 DAO 类的“搜索”方法中,也调用了这个私有方法 createTransactionalEntityManager 并且正确创建了 EntityManager。为什么会这样?


好的,这个问题和这里的许多其他问题一样(好吧,我还没有解决它,但我明天再试一次)。每次都失败。我看错了 try catch 块,所以我没有注意到异常。每次调用 Persistence.createEntityManagerFactory("TripPU").createEntityManager() 时都会发生。

【问题讨论】:

  • 在您发布的异常和您链接的代码之间没有加起来。跟踪显示异常是在 TripSearchDAO.java 的第 61 行引发的,这是您链接到的代码中的空格式行...
  • 是的,当然,我的代码有点不同。实际上是第 52 行:em = Persistence.createEntityManagerFactory("TripPU").createEntityManager();

标签: java jpa netbeans persistence derby


【解决方案1】:

在我看来,这个问题得到了回答: 原因,为什么 PersistenceException 只发生有时,是其他时候,当它看起来一切正常时,有问题的行:

em = Persistence.createEntityManagerFactory("TripPU").createEntityManager();

从 try...catch 块中的另一个类调用,其中“catch”块什么都不做。所以我没有注意到它总是失败。

【讨论】:

  • 致管理员:我不知道,根据 Stackoverflow 的政策,我以这种方式结束我的问题是有道理的。并且可能创建另一个问题(从这个问题中出现),或者在已经回答的类似问题中找到解决方案。这对那些会做类似教程并遇到这种情况只发生有时的问题的人很有用。所以我认为重命名所有问题并将其全部重写对他们来说不是很有用。
【解决方案2】:

并且还找到了真正问题的真正解决方案:在这些情况下,如果调用 Persistence.createEntityManagerFactory("TripPU") 正确,请检查persistence.xml 中持久性单元的名称(如TripPU) .createEntityManager();

PU 与 DB 实体不同,因此当您尝试做一些不同的示例(不同的表等)时,教程可能会让您感到困惑。

【讨论】:

  • 不适合我,话题完全关闭了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-24
  • 1970-01-01
  • 2016-04-11
相关资源
最近更新 更多