【问题标题】:Is it mandatory to close transaction each time in Hibernate?在 Hibernate 中每次都必须关闭事务吗?
【发布时间】:2013-04-29 19:25:57
【问题描述】:

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

【问题讨论】:

    标签: hibernate jdbc transactions


    【解决方案1】:

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

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

    调用 session.close() 将调用 java.sql.Connection#close() 。根据 JDBC 规范,如果调用 java.sql.Connection#close() 并且有一个活动事务,那么这个活动事务的结果取决于 JDBC 供应商的实现。在 Postgresql 的情况下,它会自动回滚。所以强烈建议应用在session.close()之前显式提交或回滚一个活动事务

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-11
      • 1970-01-01
      • 1970-01-01
      • 2016-11-04
      • 2010-09-18
      • 1970-01-01
      相关资源
      最近更新 更多