8

Hibernate 3.5-Final终于来了,它提供了备受期待的 JPA2 支持以及其他功能。我正在使用 JBoss 5.1.0.GA 和 Hibernate 3.3 开发一个项目(基于 EJB3),但我想利用 JPA2 并尝试升级到 Hibernate 3.5。

我所做的相当简单和标准——我只是将所有休眠 3.5 jar 放在 server/configuration(default,all,etc)/lib 文件夹中——这样它们就优先于 JBoss 附带的休眠工件。似乎 JBoss 附带了依赖于 hibernate 3.3 的 JPA1 实现部分的库,因为我开始在部署时收到一些关于未实现的抽象方法和类似内容的错误:

    23:21:26,792 WARN  [Ejb3Configuration] Persistence provider caller does not implement the EJB3 spec correctly. PersistenceUnitInfo.getNewTempClassLoader() is null.
23:21:26,792 ERROR [AbstractKernelController] Error installing to Start: name=persistence.unit:unitName=kernel-ear-3.3.0-SNAPSHOT.ear/config-persistence.jar#ConfigurationPersistenceUnit state=Create
java.lang.AbstractMethodError: org.jboss.jpa.deployment.PersistenceUnitInfoImpl.getValidationMode()Ljavax/persistence/ValidationMode;
    at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:613)
    at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:72)
    at org.jboss.jpa.deployment.PersistenceUnitDeployment.start(PersistenceUnitDeployment.java:301)
    at sun.reflect.GeneratedMethodAccessor308.invoke(Unknown Source)

也许我应该使用提供的不同持久性?目前是:

org.hibernate.ejb.HibernatePersistence

我环顾网络,没有找到任何记录在案的升级路径。在关于该主题的堆栈溢出中甚至还有一个未回答的问题。

有什么想法、建议吗?在此先感谢您的帮助。

4

3 回答 3

7

似乎 JBoss 附带的库依赖于 hibernate 3.3 的 JPA1 实现部分

是的,确实如此(请参阅此旧邮件以了解想法),我认为您当前的方法是不可能的。我的理解是 JPA 2 集成是为JBoss 5.2计划的,但似乎他们决定跳过这个分支直接进入 JBoss 6.x。

于 2010-04-07T23:31:42.410 回答
0

我已经为这个特定问题建立了一个解决方法。与其在这里重新解释,我更喜欢直接向您发送包含所有详细信息的帖子链接。

您可以在这里找到:如何在 JBoss 5.x 上使用 JPA2?(或如何消除类加载隔离问题?)

于 2012-01-05T11:51:21.560 回答
0

我还在上面的链接中添加了一些对我有用的说明。

于 2014-10-02T18:02:01.943 回答