关于Spring对hibernate进行数据操作的问题

用回调方式操作数据
return (T)this.getHibernateTemplate().execute(
new HibernateCallback() {
public T doInHibernate(org.hibernate.Session session){
session.update(entity);
return (T)entity;
}
});

直接调用继承的方法操作数据

super.getHibernateTemplate.update(entity);
return (T)entity;

结果有什么区别么,用途有什么不一样么,getHibernateTemplate是属于update 和org.hibernate.session 的update 有差异么.

新人,之前都是用父类的update方法直接操作,对于这种稍繁琐的回调方式不是很理解

2个回答

完全没必要,只有当template提供的方法不满足要求时才去使用
可参考
[url]http://jinnianshilongnian.iteye.com/blog/1685963[/url]

u011129030
Smile丶 我刚进公司,学习中,看到这种操作方式很费解,不明白为什么要这么做,又不好意思问,谢谢你的回答,而且你空间里面的东西很不错,收藏了
6 年多之前 回复

如果只是做update操作,使用getHibernateTemplate.update(entity);完全可以达到目的。但是当你自己写sql语句时getHibernateTemplate()里面封装的方法就不能满足你的要求,比如分页查询,比如跨表查询等等。这样你就需要在回调里面写相应的sql语句,而且在回调里面写的语句spring会帮你处理session的

u011129030
Smile丶 谢谢你的回答,你回答的更详细,但是已经选完答案了,不好意思了
6 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问