我们目前正在使用带有 Glassfish 3 的 openjpa 2.2.1。由于无论如何我们都必须更改我们的基础架构,因此我们正在考虑升级到 Glassfish 4。不幸的是,我无法让 OpenJpa 使用它。每当我尝试访问实体时,我都会得到 AbstractMethodErrors
Caused by: java.lang.AbstractMethodError: org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(Ljavax/persistence/SynchronizationType;Ljava/util/Map;)Ljavax/persistence/EntityManager;
(也就是说,如果我在构建期间使用 openjpa-maven-plugin 增强分类)。如果我使用动态增强,我什至无法部署应用程序。
如果我将持久性提供程序切换到 EclipseLink,它似乎工作正常。不幸的是,更改持久性提供程序并不是一个真正的选择,因为我们使用了一些 OpenJPA 功能。
我也尝试了 OpenJpa 2.2.2,结果相同。在 Glassfish 3 上,同样的事情运行得很好。