【问题标题】:Spring 4.1.6 and Hibernate 3.2.2?Spring 4.1.6 和 Hibernate 3.2.2?
【发布时间】:2015-08-12 13:42:00
【问题描述】:
我们从 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 中缺少的一些异常类。我们能够轻松解决这个问题。
有没有人能指出我们使用这种组合可能面临的任何其他问题?或者有关如何找出 Spring 4 正在使用的 Hibernate 3.6 的特定功能的任何指针,这些功能在 hibernate 3.2.2 中缺少?
【问题讨论】:
标签:
spring
hibernate
spring-4
hibernate3
【解决方案1】:
大家可以看看Spring官方migration guide:
org.springframework.orm.hibernate3 包将被淘汰为
Spring 框架 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。作为基本 Session 的替代品
绑定事务之外的需求,考虑使用新的
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。