hibernate2 升级为hibernate3的需要注意的事项
目的,主要是那当前的项目练手,熟悉一下hibernate2和hibernate3的差别,给当前项目一点扩展的空间.
1.首先将hibernate2.jar替换为hibernate3.jar(hibernate-3.0.5)
hibernate-tools.jar也替换成新的(从hibernate-tools-3.0.0.alpha4a找出来的)
2.将所有程序中的net.sf.hibernate替换为org.hibernate.
3.但是有例外
net.sf.hibernate.expression.Expression换为org.hibernate.criterion.Expression
如果用eclipse,用ctrl+shift+o快捷键可以加快速度:)
4.在使用hql查询时将
createSQLQuery(hql,"c",EZCampaignDTO.class);改为createSQLQuery(hql).addEntity("c",EZCampaignDTO.class);
5.在批量插入时
将原来的int size = ((SessionFactoryImpl)(session.getSessionFactory())).getJdbcBatchSize()
改为int size = ((SessionFactoryImpl)(session.getSessionFactory())).getSettings().getJdbcBatchSize();
6.在计算count时
将原来的int size = ((Integer) session.iterate(hql).next()).intValue();
改为int size = ((Integer) session.createQuery(hql).iterate().next()).intValue();
其中hql="select count(*) from " + DAOVar.contactClass;
7.还有就是把.hbm中的hibernate-mapping-2.0.dtd替换为hibernate-mapping-3.0.dtd
Hibernate Mapping DTD 2.0替换为Hibernate Mapping DTD 3.0
8.hibernate.cfg.xml中
Hibernate Mapping DTD 2.0替换为Hibernate Mapping DTD 3.0
<property name="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</property>
9.hibernate.properties中类似
10.cache-config.xml中
<provider className="net.sf.hibernate.cache.OSCacheProvider"/>替换为
<provider className="org.hibernate.cache.OSCacheProvider"/>
11.classeshibernate.properties中
hibernate.cache.provider_class=org.hibernate.cache.EhCacheProvider
hibernate.dialect=org.hibernate.dialect.SQLServerDialect
晕s了,怎么这里还有还是用编辑器暴力替换一下吧干脆
然后部署,集成测试,希望一切ok
结果咣铛,还是报错
12.在自动外部模块部分有一个功能是根据模版自动生成.hbm文件在load,结果出来的.hbm中有问题:
生成的 <composite-id unsaved-value="any" mapped="false">其中mapped="false" 出错.
找了半天才发现在网上的hibernate-mapping-3.0.dtd文件有支持mapped="false"这个属性.而本地的hebernate3.0.5中的
hibernate-mapping-3.0.dtd文件没有这个属性.晕,hibernate也太不负责了吧. 解决办法把hibernate-mapping-3.0.dtd
copy到jboss\bin目录下然后,在template文件中
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" "hibernate-mapping-3.0.dtd">
然后他会在jboss\bin目录下读取该文件
13.重新测试,还是咣铛
发现子类读父类数据时抛出异常
"org.hibernate.LazyInitializationException: could not initialize proxy"
延迟抓取出的错,hb3对many-to-one的默认处理是lazy = "proxy"
没有搞懂到底怎么回事,把所有many-to-one,one-to-one都加上lazy="false"
再测试终于大功告成
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=407819
分享到:
相关推荐
本文主要讨论从Hibernate 2升级到Hibernate 3的过程中需要注意的关键步骤,这对于使用SSH(Spring、Struts和Hibernate)框架的项目尤其重要。 首先,升级的第一步涉及替换jar包。将旧版本的Hibernate 2.1.jar替换为...
3. **登录功能实现**:在Struts2和Hibernate结合的项目中,登录功能通常涉及用户输入验证、数据库查询等步骤。首先,用户在前端界面输入用户名和密码,提交到Struts2的Action。Action中,通过Hibernate的Session查询...
主要内容: 提供了一步一步的操作指南来将Struts2从2.3.30版本平滑过渡至2.5.12版本,Spring由4.2.2更新至4.3.9以及Hibernate进阶提升到5.2.11版本的具体路径和技术要点阐述。详细讲述了每个阶段所需更改的内容,比如...
1. **安装与下载**: 首先,你需要从Hibernate官方网站或Maven仓库下载Hibernate 5.3的JAR文件,包括核心库、数据库驱动和其他依赖库。这些文件通常会被添加到项目的类路径(classpath)中。 2. **配置pom.xml**: ...
- 在开发环境中,可能还需要添加相应的IDE插件或构建工具配置,如Maven或Gradle,以便于管理和升级这些依赖。 以上是关于S2SH整合的基础知识,通过理解并熟练运用这些概念,开发者可以有效地构建和维护大型的Java ...
菜单window -> preference -> Java -> Build Path -> User Librarys,分别建立名为Hibernate2,hibernate3,mysql-jdbc的用户库,分别包含对应的lib文件(如hibernate2包含hibernate-2.1目录下的hibernate2.jar及其lib...
注意,如果你有旧版本的Spring库,如cglib-nodep-2.1_3.jar,也可以替换为asm-2.2.3.jar和cglib-2.2.jar。 配置Struts2.2.1: Struts2所需的jar包包括: - ognl-3.0.jar - xwork-core-2.2.1.jar - freemarker-...
Spring、Struts和Hibernate是...需要注意的是,随着技术的发展,Spring、Struts和Hibernate都有了更新的版本,比如Spring5、Struts2.5和Hibernate5,新版本通常包含更多的改进和新特性,所以适时升级也是非常重要的。
Struts2、Hibernate和DWR3是三个在Java Web开发中广泛应用的开源框架。它们各自在Web应用程序的不同层面上发挥着关键作用。Struts2是一个强大的MVC(Model-View-Controller)框架,用于处理用户请求和控制应用程序...
总之,Shh.jar包为Java开发者提供了一个快速启动Shh框架项目的基础,涵盖了Spring、Struts2和Hibernate的核心功能。然而,为了构建完整的、高性能的企业级应用,开发者还需要深入理解每个框架的细节,灵活运用,并...
4. **兼容性问题**:升级到新版本时,需要注意与现有库和框架的兼容性,确保整个项目生态系统能够正常运行。 5. **数据迁移**:如果新版本涉及到数据库模型的变化,可能需要进行数据迁移,以保证旧数据能够正确地...
Hibernate-tools是Java开发中的一款强大工具,它为开发者提供了对Hibernate框架的便捷操作,包括实体类的自动生成、映射文件的生成以及数据库的反向工程等。本文将深入探讨Hibernate-tools的修改记录,帮助开发者更...
**注意事项** 在下载和使用这个整合版本时,确保检查所有组件的版本兼容性,因为不同版本之间可能存在不兼容问题。同时,阅读代码和文档以理解每个部分的作用,这对于理解和学习框架的整合至关重要。在实际项目中,...
6. **开发实践**:使用Hibernate进行开发时,需要注意实体类的设计,属性与数据库字段对应,还要编写HQL(Hibernate查询语言)或使用Criteria API来执行查询操作。 7. **性能优化**:Hibernate提供了缓存机制、...
SSH整合是指将Spring、Struts2和Hibernate三个开源框架集成在一起,用于构建高效、模块化的企业级Web应用程序。这三个框架分别负责不同的职责:Spring作为应用的基石,提供依赖注入(DI)和面向切面编程(AOP)等...
8. **兼容性与升级**:在从较旧的 Hibernate 版本升级到 3.2 时,开发者需要注意可能存在的API变化和配置差异。例如,从3.2升级到3.4.0.GA,虽然主要功能保持一致,但可能会有新的特性加入和已知问题修复,需要查看...
j2cache修改了开源中国的红薯的j2cache,全部依赖库都升级为最新版本,修改为maven结构,且去掉了hibernate的支持注意:fst最新版本需要jdk1.7支持具体的依赖库版本请参考pom文件。主要修改内容如下:2015-09-07修改...
使用Hibernate Tools需要先正确配置Hibernate的项目设置,包括数据库连接信息、Hibernate配置文件等。`index.html`和`Readme.txt`可能提供了详细的使用指南和注意事项。`content.jar`和`artifacts.jar`可能是插件...