升级GlassFish 3.1.2.2以使用JPA 2.1

时间:2013-08-26 15:21:50

标签: jpa glassfish jpa-2.0 glassfish-3

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

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

3 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:1)

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

它可能会有效,但是如果你使用托管持久性单元,它们不会公开任何JPA 2.1 API,你需要打开EntiyManager才能访问它们。

答案 2 :(得分:1)

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

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

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

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