getHibernateTemplate().flush()和getSession()之间有什么区别.flush()

Sri*_*san 8 java spring hibernate

我正在使用Hibernate 3.2.6.我面临例外

在冲洗之前保存瞬态实例

在我的代码中,有时我们正在使用getSession().flush(),有时我们getHibernateTemplate().flush()在一个事务中使用.

你能否告诉我这两者有什么区别?

Pet*_*ton 9

HibernateTemplate是不推荐使用的Spring代码,从Spring转移到注释之前的几天开始作为事务管理的首选方法.它不是Hibernate本身的一部分.模板代码抽象出了创建,提交和回滚事务的机制,允许开发人员专注于他们的业务逻辑.HibernateTemplate现在被Spring社区认为是多余的,并且在Spring对Hibernate 4的支持中已被完全删除.

从官方文档:

注意:从Hibernate 3.0.1开始,事务性Hibernate访问代码也可以用简单的Hibernate风格编码.因此,对于新启动的项目,请考虑采用基于SessionFactory.getCurrentSession()的标准Hibernate3样式的编码数据访问对象.

在过渡期间,您的代码可能是遗留代码和开发人员之间混合方法的混合体.