`
beyond429
  • 浏览: 95748 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

hibernate2 升级为hibernate3的需要注意的事项

阅读更多
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 2升级到Hibernate 3的过程中需要注意的关键步骤,这对于使用SSH(Spring、Struts和Hibernate)框架的项目尤其重要。 首先,升级的第一步涉及替换jar包。将旧版本的Hibernate 2.1.jar替换为...

    struts2+hibernate实现登录及增删改操作

    3. **登录功能实现**:在Struts2和Hibernate结合的项目中,登录功能通常涉及用户输入验证、数据库查询等步骤。首先,用户在前端界面输入用户名和密码,提交到Struts2的Action。Action中,通过Hibernate的Session查询...

    Struts2.3.30升级2.5.12+spring4.2.2升级4.3.9+hibernate5.0.9升级5.2.11注意

    主要内容: 提供了一步一步的操作指南来将Struts2从2.3.30版本平滑过渡至2.5.12版本,Spring由4.2.2更新至4.3.9以及Hibernate进阶提升到5.2.11版本的具体路径和技术要点阐述。详细讲述了每个阶段所需更改的内容,比如...

    hibernate5.3框架环境配置成功代码

    1. **安装与下载**: 首先,你需要从Hibernate官方网站或Maven仓库下载Hibernate 5.3的JAR文件,包括核心库、数据库驱动和其他依赖库。这些文件通常会被添加到项目的类路径(classpath)中。 2. **配置pom.xml**: ...

    struts2,spring,hibernate整合的所有jar包。

    - 在开发环境中,可能还需要添加相应的IDE插件或构建工具配置,如Maven或Gradle,以便于管理和升级这些依赖。 以上是关于S2SH整合的基础知识,通过理解并熟练运用这些概念,开发者可以有效地构建和维护大型的Java ...

    深入浅出Hibernate源码

    菜单window -&gt; preference -&gt; Java -&gt; Build Path -&gt; User Librarys,分别建立名为Hibernate2,hibernate3,mysql-jdbc的用户库,分别包含对应的lib文件(如hibernate2包含hibernate-2.1目录下的hibernate2.jar及其lib...

    ssh(struts2.2.1+_hibernate3.6+spring3.0.5)整合配置

    注意,如果你有旧版本的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-...

    Spring3 Struts Hibernate3所有Jar包

    Spring、Struts和Hibernate是...需要注意的是,随着技术的发展,Spring、Struts和Hibernate都有了更新的版本,比如Spring5、Struts2.5和Hibernate5,新版本通常包含更多的改进和新特性,所以适时升级也是非常重要的。

    Struts2,hibernate,dwr3的框架整合

    Struts2、Hibernate和DWR3是三个在Java Web开发中广泛应用的开源框架。它们各自在Web应用程序的不同层面上发挥着关键作用。Struts2是一个强大的MVC(Model-View-Controller)框架,用于处理用户请求和控制应用程序...

    Shh.jar包(spring,struts2,hibernate)

    总之,Shh.jar包为Java开发者提供了一个快速启动Shh框架项目的基础,涵盖了Spring、Struts2和Hibernate的核心功能。然而,为了构建完整的、高性能的企业级应用,开发者还需要深入理解每个框架的细节,灵活运用,并...

    hibernate新版本

    4. **兼容性问题**:升级到新版本时,需要注意与现有库和框架的兼容性,确保整个项目生态系统能够正常运行。 5. **数据迁移**:如果新版本涉及到数据库模型的变化,可能需要进行数据迁移,以保证旧数据能够正确地...

    HIbernate-tools修改记录

    Hibernate-tools是Java开发中的一款强大工具,它为开发者提供了对Hibernate框架的便捷操作,包括实体类的自动生成、映射文件的生成以及数据库的反向工程等。本文将深入探讨Hibernate-tools的修改记录,帮助开发者更...

    springmvc+spring3+hibernate4框架整合完整版

    **注意事项** 在下载和使用这个整合版本时,确保检查所有组件的版本兼容性,因为不同版本之间可能存在不兼容问题。同时,阅读代码和文档以理解每个部分的作用,这对于理解和学习框架的整合至关重要。在实际项目中,...

    一个好的hibernate源代码有server2008数据库

    6. **开发实践**:使用Hibernate进行开发时,需要注意实体类的设计,属性与数据库字段对应,还要编写HQL(Hibernate查询语言)或使用Criteria API来执行查询操作。 7. **性能优化**:Hibernate提供了缓存机制、...

    SSH整合jar包(spring3+struts2+hibernate3)

    SSH整合是指将Spring、Struts2和Hibernate三个开源框架集成在一起,用于构建高效、模块化的企业级Web应用程序。这三个框架分别负责不同的职责:Spring作为应用的基石,提供依赖注入(DI)和面向切面编程(AOP)等...

    hibernate-entitymanager-3.2.jar.zip

    8. **兼容性与升级**:在从较旧的 Hibernate 版本升级到 3.2 时,开发者需要注意可能存在的API变化和配置差异。例如,从3.2升级到3.4.0.GA,虽然主要功能保持一致,但可能会有新的特性加入和已知问题修复,需要查看...

    j2cache:修改了开源中国的红薯的j2cache,全部依赖库都升级为最新版本,修改为maven结构,且去掉了hibernate的支持 注意:fst最新版本需要jdk1.7支持

    j2cache修改了开源中国的红薯的j2cache,全部依赖库都升级为最新版本,修改为maven结构,且去掉了hibernate的支持注意:fst最新版本需要jdk1.7支持具体的依赖库版本请参考pom文件。主要修改内容如下:2015-09-07修改...

    hibernatetools-Update-4.1.1.Final_2013-12-08_01-06-33-B605

    使用Hibernate Tools需要先正确配置Hibernate的项目设置,包括数据库连接信息、Hibernate配置文件等。`index.html`和`Readme.txt`可能提供了详细的使用指南和注意事项。`content.jar`和`artifacts.jar`可能是插件...

Global site tag (gtag.js) - Google Analytics