hibernate2到hibernate3升级指南:关键步骤与变更
需积分: 0 87 浏览量
更新于2024-09-17
收藏 53KB DOC 举报
"这篇文章主要介绍了将Hibernate 2升级到Hibernate 3时需要注意的关键步骤和更改。目的是为了在项目中熟练掌握两者之间的差异,并为项目提供扩展的可能性。"
在升级过程中,首要任务是替换库文件。将旧的hibernate2.jar替换为hibernate3.jar(版本3.0.5),同时更新hibernate-tools.jar至新版本(此处提到的是hibernate-tools-3.0.0.alpha4a)。这是确保项目依赖于最新Hibernate框架的基础。
接下来,需要更新代码中的包引用。所有使用`net.sf.hibernate`的地方都应更改为`org.hibernate`。例如,所有对Hibernate API的引用都需要做相应的调整。不过,值得注意的是,`net.sf.hibernate.expression.Expression`需特别替换为`org.hibernate.criterion.Expression`。对于使用Eclipse的开发者,可以利用`Ctrl+Shift+O`快捷键快速完成这个过程。
在处理HQL查询时,需要修改调用方式。以前使用`createSQLQuery(hql,"c",EZCampaignDTO.class)`的方式现在应该改为`createSQLQuery(hql).addEntity("c",EZCampaignDTO.class)`。这反映了Hibernate 3中API接口的变化。
在执行批量插入操作时,获取批处理大小的方法也发生了变化。在Hibernate 2中,通过`((SessionFactoryImpl)(session.getSessionFactory())).getJdbcBatchSize()`来获取,而在Hibernate 3中,应改为`((SessionFactoryImpl)(session.getSessionFactory())).getSettings().getJdbcBatchSize()`。
计算集合的计数时,原方法`intsize=((Integer)session.iterate(hql).next()).intValue();`需要更新为`intsize=((Integer)session.createQuery(hql).iterate().next()).intValue();`。这里,HQL查询语句为`hql="select count(*) from "+DAOVar.contactClass;`,以适应新的查询API。
此外,XML映射文件也需要更新。将`.hbm`文件中引用的`hibernate-mapping-2.0.dtd`替换为`hibernate-mapping-3.0.dtd`,并相应地将HibernateMappingDTD2.0替换为HibernateMappingDTD3.0。这确保了映射文件与新版本的Hibernate兼容。
以上所述是将Hibernate 2升级到Hibernate 3时的一些关键改动。这些变更旨在使代码与新版本的Hibernate框架保持一致,以充分利用其新功能和改进。然而,升级过程中可能还会遇到其他不兼容或需要调整的地方,因此进行充分的测试和代码审查是必要的,以确保项目平稳过渡。
2010-05-06 上传
2016-08-23 上传
2023-07-22 上传
2024-10-31 上传
2024-09-18 上传
2023-03-31 上传
2023-06-09 上传
2023-08-24 上传
feiyangdesky
- 粉丝: 0
- 资源: 8
最新资源
- C语言数组操作:高度检查器编程实践
- 基于Swift开发的嘉定单车LBS iOS应用项目解析
- 钗头凤声乐表演的二度创作分析报告
- 分布式数据库特训营全套教程资料
- JavaScript开发者Robert Bindar的博客平台
- MATLAB投影寻踪代码教程及文件解压缩指南
- HTML5拖放实现的RPSLS游戏教程
- HT://Dig引擎接口,Ampoliros开源模块应用
- 全面探测服务器性能与PHP环境的iprober PHP探针v0.024
- 新版提醒应用v2:基于MongoDB的数据存储
- 《我的世界》东方大陆1.12.2材质包深度体验
- Hypercore Promisifier: JavaScript中的回调转换为Promise包装器
- 探索开源项目Artifice:Slyme脚本与技巧游戏
- Matlab机器人学习代码解析与笔记分享
- 查尔默斯大学计算物理作业HP2解析
- GitHub问题管理新工具:GIRA-crx插件介绍