如何把Hibernate2.1升级到Hibernate3.0 - 编程入门网
n=sessionFactory.openSession();
在Hibernate3.0中,Session接口中被废弃的方法包括: * 执行查询的方法:find()、iterate()、filter()和delete(String hqlSelectQuery) * saveOrUpdateCopy() Hibernate3.0一律采用createQuery()方法来执行所有的查询语句,采用DELETE 查询语句来执行批量删除,采用merge()方法来替代 saveOrUpdateCopy()方法。 提示:在Hibernate2.1中,Session的delete()方法有几种重载形式,其中参数为HQL查询语句的delete()方法在Hibernate3.0中被废弃,而参数为Ojbect类型的的delete()方法依然被支持。delete(Object o)方法用于删除参数指定的对象,该方法支持级联删除。 Hibernate2.1没有对批量更新和批量删除提供很好的支持,而Hibernate3.0对批量更新和批量删除提供了支持,能够直接执行批量更新或批量删除语句,无需把被更新或删除的对象先加载到内存中。以下是通过Hibernate3.0执行批量更新的程序代码:
以下是通过Hibernate3.0执行批量删除的程序代码:
1.6 createSQLQuery() 在Hibernate3.0中,Session接口的createSQLQuery()方法被废弃,被移到org.hibernate.classic.Session接口中。Hibernate3.0采用新的SQLQuery接口来完成相同的功能。 如何把Hibernate2.1升级到Hibernate3.0(3)时间:2011-03-061.7 Lifecycle 和 Validatable 接口 Lifecycle和Validatable 接口被废弃,并且被移到org.hibernate.classic包中。 1.8 Interceptor接口 在Interceptor 接口中加入了两个新的方法。 用户创建的Interceptor实现类在升级的过程中,需要为这两个新方法提供方法体为空的实现。此外,instantiate()方法的参数作了修改,isUnsaved()方法被改名为isTransient()。 1.9 UserType和CompositeUserType接口 在UserType和CompositeUserType接口中都加入了一些新的方法,这两个接口被移到org.hibernate.usertype包中,用户定义的UserType和CompositeUserType实现类必须实现这些新方法。 Hibernate3.0提供了ParameterizedType接口,用于更好的重用用户自定义的类型。 1.10 FetchMode类 FetchMode.LAZY 和 FetchMode.EAGER被废弃。取而代之的分别为FetchMode.SELECT 和FetchMode.JOIN。 1.11 PersistentEnum类 PersistentEnum被废弃并删除。已经存在的应用应该采用UserType来处理枚举类型。 1.12 对Blob 和Clob的支持 Hibernate对Blob和Clob实例进行了包装,使得那些拥有Blob或Clob类型的属性的类的实例可以被游离、序列化或反序列化,以及传递到merge()方法中。 1.13 Hibernate中供扩展的API的变化 org.hibernate.criterion、 org.hibernate.mapping、 org.hibernate.persister和org.hibernate.collection 包的结构和实现发生了重大的变化。多数基于Hibernate 2.1 的应用不依赖于这些包,因此不会被影响。如果你的应用扩展了这些包中的类,那么必须非常小心的对受影响的程序代码 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |