JBoss 5.1.0.GA中的Hibernate 3.5-Final
Hibernate 3.5-Final终于来了,它提供了备受期待的JPA2支持,以及其他function。 我正在使用JBoss 5.1.0.GA和Hibernate 3.3开发一个项目(基于EJB3),但我想利用JPA2并尝试升级到Hibernate 3.5。
我所做的相当简单和标准 – 我只是将所有hibernate 3.5 jar放在服务器/配置(默认,所有等)/ 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
我环顾网络,没有找到任何记录的升级路径。 在这个主题的堆栈溢出中甚至有一个未解决的问题。
有什么想法,建议吗? 在此先感谢您的帮助。
虽然JBoss附带的库依赖于hibernate 3.3的JPA1实现部分
是的,确实如此(请参阅此旧邮件以获得一个想法),我认为您当前的方法是不可能的。 我的理解是, JBoss 5.2计划了JPA 2集成,但似乎他们决定跳过这个分支直接进入JBoss 6.x.
我已针对此特定问题构建了一种解决方法。 我不想在这里重新解释,而是直接向您发送包含所有详细信息的post的链接。
你可以在这里找到: 如何在JBoss 5.x上使用JPA2? (或如何消除类加载隔离问题?)
我还在上面的链接中添加了一些对我有用的说明。
- 如何在Hibernate Criteria中添加Distinct
- Hibernate @OneToMany抛出MySQLSyntaxErrorException:您的SQL语法中有错误
- 使用PostgreSQL,为什么Hibernate / JPA不会创建级联约束?
- 使用Hibernate Criteria和Oracle,有什么更好的方法与时间一起工作?
- 获取org.hibernate.MappingException:没有JDBC类型的Dialect映射:-4exception?
- 为多个模式中的实体生成Liquibase-hibernate changelog
- 使用可滚动结果集在hibernate中批量读取数据
- Hibernate – 更新表中的主键“id”列
- Hibernate一到零或一个映射