有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java有时会获取PersistenceException:EntityManager没有持久性提供程序

关于这个PersistenceException有很多问题,但我没有看到一些问题,其中特定的代码行只是偶尔抛出这个异常(但不是随机的:-)

那么,你知道吗,为什么我的简单应用程序一旦找到了合适的供应商,但后来却找不到

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

我正在尝试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类的“search”方法中,也调用了这个私有方法createTransactionalEntityManager,并且正确地创建了EntityManager。为什么会这样


好的,这个问题和这里的许多其他问题类似(嗯,我还没有解决它,但我明天会再试一次)。每次都失败了。我看错了try-catch块,所以没有注意到异常。每次持久化都会发生。CreateEntityManager工厂(“TripPU”)。调用createEntityManager()


共 (2) 个答案

  1. # 1 楼答案

    真正问题的真正解决方案也被找到了:在这些情况下,确实要检查持久化中持久化单元的名称。xml(比如TripPU),如果它对调用持久性是正确的。CreateEntityManager工厂(“TripPU”)。createEntityManager()

    PU与DB实体不同,所以当你尝试做一些不同的例子(不同的表等)时,教程可能会让你感到困惑

  2. # 2 楼答案

    在我看来,这个问题的答案是: PersistenceException只偶尔出现的原因是,另一次,似乎一切正常,有问题的一行:

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

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