忘了在hibernate中提交Transaction

时间:2012-10-04 05:07:20

标签: performance spring hibernate

我正在为我的网络应用程序使用 hibernate和spring

在某些地方,我忘记提交交易......如下面的代码

 SessionFactory sf = HibernateUtils.getSessionFactory();
                session = sf.openSession();
                tx = session.beginTransaction();
..........................................Some Code.............................

But forgot to commit transaction.....

finally
{
session.flush();
session.close();
}

现在我的问题是: -

  • 这会给我带来什么问题吗?
  • 有关内存泄漏的任何问题??
  • 增加数据库的负载??

这对我的系统有什么影响?

1 个答案:

答案 0 :(得分:2)

如果您不提交交易,那么

  • 在连接被删除/关闭之前,将锁定事务中涉及的表。
  • 作为交易的一部分对表进行的更改仅适用于那些从池中重用相同连接而不是其他人的连接。
  • 如果在这样的连接中永远不会调用commit()方法,直到它被关闭/删除,那么在关闭/断开连接后所做的所有更改都将丢失。

基本上,您的系统行为将是任意的,这意味着它对您来说是个问题。它不会导致任何内存泄漏。