代码之家  ›  专栏  ›  技术社区  ›  Bozhidar Batsov

jboss 5.1.0.ga中的hibernate 3.5-final

  •  8
  • Bozhidar Batsov  · 技术社区  · 15 年前

    Hibernate 3.5-Final 最后,它提供了备受期待的jpa2支持和其他特性。我正在使用jboss 5.1.0.ga和hibernate 3.3开发一个项目(基于ejb3),但是我想利用jpa2并尝试升级到hibernate3.5。

    我所做的是相当简单和标准的—我只是将所有Hibernate3.5jar放在服务器/配置(默认,所有,等等)/lib文件夹中—这样它们就优先于JBoss附带的Hibernate工件。似乎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网站

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

    有什么想法和建议吗?提前谢谢你的帮助。

    3 回复  |  直到 10 年前
        1
  •  7
  •   Pascal Thivent    15 年前

    似乎jboss附带的库依赖于hibernate 3.3的jpa1实现部分

    是的,是的(见 this old mail 我不认为你现在的方法是可能的。我的理解是jpa 2的集成是为 JBoss 5.2 但他们似乎决定跳过这个分支直接转到jboss 6.x。

        2
  •  0
  •   Community CDub    8 年前

    我已经为这个具体问题建立了一个解决方案。与其在这里重新解释,我更愿意直接给你发到帖子的链接,里面有所有的细节。

    你可以在这里找到: How to use JPA2 on JBoss 5.x ? (or How to eliminate class loading isolation issue?)

        3
  •  0
  •   Hank Ratzesberger    10 年前

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