`
beyond429
  • 浏览: 93279 次
  • 性别: 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 升级参考文档

    主要针对ssh框架 ,hibernate2 升级到hibernate3 的一些要注意的地方。

    深入浅出Hibernate源码

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

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

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

    HibernateSynchronizer 支持eclipse4.* 版本

    HibernateSynchronizer 是一款非常简单实用的eclipse插件,但是作者多年前就停止了维护,...注意:这个版本只支持4.*版本,如果eclipse 为3.*版本的,请去这里下载:https://sourceforge.net/projects/hibernatesynch/

    Struts2SpringHibernate升级三合一(精益求精)

    Struts2.3.16.3升级到Struts2.5.12注意事项(必须) Spring 4.1.2升级到Spring 4.3.10注意事项(必须) hibernate 3升级到hibernate5.2.9注意事项(必须) 最新SSH升级必备

    深入浅出Hibernate

    在您的eclipse中,建立两个User Library: 菜单window -&gt; preference -&gt; Java -&gt; Build Path -&gt; User Librarys,分别建立名为Hibernate2,hibernate3,mysql-jdbc的用户库,分别包含对应的lib文件(如hibernate2包含...

    hibernate-orm-on-java9-modules

    Hibernate ORM 5作为Java 9自动模块 一个简单的测试平台,用于将Hibernate ORM 5用作(自动)JPMS模块。 一些值得注意的事情: ... 因此,改为使用ModiTect( )将JPA API JAR转换为显式的JPMS模块 所有模块都收集

    Maven2 的新特性.7z

    POM是Maven的核心对象模型,在Maven2中POM已由project.xml转移到pom.xml中使用,版本也由3升级为4。对于项目,一般只需要pom.xml就行了。 在Maven2中不需要也不提倡使用maven.xml,原因如下: • plugin的易用性的...

    springboot参考指南

    从Spring Boot早期版本升级 iv. 11. 开发你的第一个Spring Boot应用 v. 11.1. 创建POM vi. 11.2. 添加classpath依赖 vii. 11.3. 编写代码 i. 11.3.1. @RestController和@RequestMapping注解 ii. 11.3.2. @...

    learn_english_v2:Learn English 重写升级版

    Learn English 重写升级版使用的技术如下:Spring BootThymeleafMySQLMyBatis / Mybatis Generator / Mybatis PageHelperShiroDozerHibernate Validator注意:返回 JSON 类型结果时使用统一结果类ResultBean系统处理...

    Java常见面试题208道.docx

    3.两个对象的 hashCode()相同,则 equals()也一定为 true,对吗? 4.final 在 java 中有什么作用? 5.java 中的 Math.round(-1.5) 等于多少? 6.String 属于基础的数据类型吗? 7.java 中操作字符串都有哪些类?它们...

    jeecms插件,古老的插件

    这儿需要注意的是service实例化的文件名字,要以*-context.xml结尾,这样web启动的时候才能加载。这个看web.xml里的配置可以发现。(最好是以插件名建立文件夹。配置文件中/**/*-context.xml应该是代表可以包含目录) ...

    Spring_Framework_ API_5.0.5 (CHM格式)

    要构建和运行 Spring5 应用程序,你至少需要 J2EE7 和 JDK8。以前的 JDK 和 JavaEE 版本不再支持。 JavaEE7 包含: Servlet 3.1 JMS 2.0 JPA 2.1 JAX-RS 2.0 Bean Validation 1.1 与 Java 基准类似,许多...

    elasticsearch-grails-plugin:ElasticSearch grails 插件

    此版本的主要新功能之一是能够通过插件使用任何 gorm-datastore, 所以你不再绑定到Hibernate插件。 虽然 Noam 的 fork 之前以elasticsearch-gorm的名义发布在 grails 中央存储库上, 它现在将以原始插件名称...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    昆山工业技术研究院着眼于为委托用户和质检机构搭建良好的沟通桥梁,免去目前市场业务中企业用户需要实地地并频繁地与检测机构沟通,从而提出自己的委托乃至下委托单、等待检测报告等,设计并研发了市场上首款提供...

Global site tag (gtag.js) - Google Analytics