我们从Spring 3.x迁移到Spring 4.1.6。 Spring 4及以上版本推荐使用Hibernate 4或Hibernate 3.6.10。但我们计划继续使用Hibernate 3.2.2,因为Hibernate 3.2.2和3.6.10有几个重大变化,我们计划稍后解决。到目前为止,我们只面临一个问题,即Spring 4使用了Hibernate 3.2.2中缺少的一些Exception类。我们能够轻松解决这个问题。
有没有人对这个组合可能遇到的任何其他问题有任何指示?或者关于如何找出Spring 4正在使用hibernate 3.2.2中缺少的Hibernate 3.6的特定功能的任何指针?
答案 0 :(得分:1)
你可以看一下Spring的官方migration guide:
org.springframework.orm.hibernate3包将逐步淘汰 Spring Framework 4.2。我们暂时继续支持它; 但是,我们强烈建议升级到Hibernate 4.2 / 4.3或5.0。
从Spring Framework 4.0.1开始,我们提供了一个HibernateTemplate变体 在org.springframework.orm.hibernate4中,以简化常见的迁移 Hibernate 3.x数据访问代码,特别是如果你的动机 升级是缺少Hibernate 3.x系列中的错误修复。注意 建议新编写的代码使用Hibernate的本机代码 SessionFactory.getCurrentSession()样式。
在相关的说明中,不推荐使用HibernateInterceptor org.springframework.orm.hibernate3并且不再存在 org.springframework.orm.hibernate4。作为基本会话的替代品 在事务之外绑定需求,考虑使用新的 OpenSessionInterceptor变体,适用于Hibernate 3和4 从Spring Framework 4.0.2开始。
注意:Spring Framework 4.0.0版本意外受限制 HibernateTemplate的List元素类型仅限Object。这一直是 固定自4.0.2(https://jira.springsource.org/browse/SPR-11402), 允许立即转换为特定类型的列表。如果你 请讨论迁移现有Hibernate访问代码的任何问题 首先升级到Spring Framework 4.0.2。