Hibernate2.x和Hibernate3.x的重大区别

昨日发现我们原先使用Hibernate2.x开发的程序代码,在使用Hibernate3.x后,不能正常使用。其最重要的地方有两处:

1、getHibernateTemplate().find()

在2.x中,find函数有三个参数,分别用来传递hql,参数值,参数类型,而3.x中仅有两个参数。经过研究发现,在3.x中不用传递参数的类型参数。看来还是3.x好呀。如果你有很多参数,那么你的参数类型数组将很大。

2、getSession().createSQLQuery()

该函数在2.x和3.x中有两处不同:

①在2.x中,该函数返回的是Query接口对象,而在3.x中返回的是SQLQuery接口对象,据说SQLQuery是Query的子接口。

②2.x中,该函数有三个参数,第一个参数是sql,第二个参数是sql语句中要拼凑entity的别名,第三个参数是域模型的Class,如User.class。在3.x中仅一个参数,即查询的sql。如果要设置参数,则需要调用该函数返回的对象SQLQuery.setParameter()等函数,它提供的设置参数的方法很多,可根据需要来灵活设置。另外,对于设置entity的class,它提供了方法addEntity(Class classZ)。

想想:据此,可推断出3.x在功能上做了较大的扩充,如果你不addEntity(),那么返回的就是动态对象数组。否则返回的就是addEntity()中的实体bean对象列表。这个只是推断,我没有试验。感觉应该是这样的。不可能越升级越差劲。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值