是否必须每次在Hibernate中关闭事务?

时间:2013-05-06 04:32:36

标签: hibernate jdbc transactions

在Hibernate中我们每次关闭Session但是每次在Hibernate中关闭事务还是只有事务提交就足够了?

1 个答案:

答案 0 :(得分:1)

我们只能begincommitrollback进行交易。所以,closing交易对我来说是模棱两可的。这是否意味着提交或回滚事务?

如果事务开始,将在客户端和服务器之间建立数据库连接。只有在事务提交,回滚或超时(如果数据库支持它)时,才会释放此连接。

致电session.close()会致电java.sql.Connection#close()。根据JDBC规范,如果调用java.sql.Connection#close()并且存在活动事务,则此活动事务的结果取决于JDBC供应商的实现。在Postgresql的情况下,它将自动回滚。因此,强烈建议应用程序在session.close()

之前显式提交或回滚活动事务