【发布时间】:2013-04-29 19:25:57
【问题描述】:
在 Hibernate 中,我们每次都关闭 Session,但是在 Hibernate 中每次都需要关闭事务还是只提交事务就足够了?
【问题讨论】:
标签: hibernate jdbc transactions
在 Hibernate 中,我们每次都关闭 Session,但是在 Hibernate 中每次都需要关闭事务还是只提交事务就足够了?
【问题讨论】:
标签: hibernate jdbc transactions
我们只能begin、commit 或rollback 进行交易。所以,closing 一笔交易对我来说是模棱两可的。这是否意味着提交或回滚事务?
如果事务开始,将在客户端和服务器之间建立数据库连接。仅当事务提交、回滚或超时(如果数据库支持)时,才会释放此连接。
调用 session.close() 将调用 java.sql.Connection#close() 。根据 JDBC 规范,如果调用 java.sql.Connection#close() 并且有一个活动事务,那么这个活动事务的结果取决于 JDBC 供应商的实现。在 Postgresql 的情况下,它会自动回滚。所以强烈建议应用在session.close()之前显式提交或回滚一个活动事务
【讨论】: