hibernate2到hibernate3升级指南:关键步骤与变更
需积分: 0 96 浏览量
更新于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框架保持一致,以充分利用其新功能和改进。然而,升级过程中可能还会遇到其他不兼容或需要调整的地方,因此进行充分的测试和代码审查是必要的,以确保项目平稳过渡。
点击了解资源详情
185 浏览量
112 浏览量
2010-05-06 上传
2024-10-15 上传
216 浏览量
2016-01-18 上传
2017-01-07 上传
2014-07-26 上传
feiyangdesky
- 粉丝: 0
- 资源: 8
最新资源
- portfolio2021
- VB在桌面上显示圆形时钟
- torch_sparse-0.6.4-cp37-cp37m-linux_x86_64whl.zip
- HmSetup.zip
- lombok.jar压缩包
- 带动画效果的二级下拉导航菜单
- FoodOrderingApp-Backend
- 投资组合网站
- CoopCPS:出版物来源
- 取GDI图像信息.rar
- torch_cluster-1.5.5-cp37-cp37m-win_amd64whl.zip
- 青少年的消费行为及消费心理DOC
- keIpie.github.io
- 纯css一款非常时髦的菜单
- 风景
- warehouse-location-management:湖畔培训项目