0

我正在使用 GlassFish 3.1.2.2(由于操作系统限制,我无法升级到 4)。

我有兴趣将 JPA 2.0 升级到 JPA 2.1 GlassFish 3.1.2.2。我怎样才能做到这一点?

4

3 回答 3

5

这很可能根本不可能。JPA 2.1 是 EE 7 的一部分,因此未与 EE 6 GF 3.1.2.2 完全集成。

于 2013-08-27T09:54:05.307 回答
1

您是否尝试仅替换 Glassfish 中的 EclipseLink 和 JPA jar 文件?

它可能会起作用,但如果您使用托管持久性单元,它们不会公开任何 JPA 2.1 API,您需要打开 EntiyManager 才能访问这些。

于 2013-08-27T13:27:47.763 回答
1

我正在使用 Hibernate 4.3.8(需要 JPA 2.1)和 Glassfish 3.1.2.2。

注意:我没有使用 glassfish 提供的任何服务。我使用的所有库都在 WEB-INF/lib 中。

1 -使用 JPA 2.1 版本覆盖所有 JPA 类(包javax.persistence) 。glassfish/modules/javax.persistence.jar你不应该替换整个 JAR,只覆盖类。这个 JAR 有一个 OSGI 清单和其他必须保留在那里的类。

2 - 删除所有 javassist 类(包javasssistglassfish/modules/weld-osgi-bundle.jar。如果您使用 Hibernate,这解决了可能的不兼容问题。

于 2015-04-02T15:18:08.153 回答