0

我正在为我的 Web 应用程序使用休眠和弹簧。

在某些地方,我忘记提交事务......就像下面的代码

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

But forgot to commit transaction.....

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

现在我的问题是:-

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

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

4

1 回答 1

2

如果您不提交交易,那么

  • 事务中涉及的表将被锁定,直到连接被删除/关闭。
  • 作为事务的一部分对表所做的更改将仅适用于那些重用池中相同连接的人,而不适用于其他人。
  • 如果commit()在关闭/删除之前从未在此类连接上调用方法,则在关闭/删除连接后所做的所有更改都将丢失。

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

于 2012-10-04T05:10:17.247 回答