📜  Hibernate教程:Hibernate事务管理示例

📅  最后修改于: 2021-01-02 15:49:42             🧑  作者: Mango

休眠事务管理示例

事务只是代表一个工作单元。在这种情况下,如果一个步骤失败,则整个事务都会失败(称为原子性)。事务可以通过ACID属性(原子性,一致性,隔离性和持久性)来描述。

Hibernate中的事务接口

在休眠框架中,我们具有用于定义工作单元的Transaction接口。它保持对事务实现(JTA,JDBC)的抽象。

事务与Session关联,并通过调用session.beginTransaction()实例化。

事务接口的方法如下:

  • void begin()启动一个新事务。
  • 除非我们处于FlushMode.NEVER,否则void commit()会终止工作单元。
  • void rollback()强制此事务回滚。
  • void setTimeout(int seconds)它将为由随后在此实例上开始的调用启动的任何事务设置事务超时。
  • boolean isAlive()检查事务是否仍然存在。
  • void registerSynchronization(Synchronization s)为此事务注册用户同步回调。
  • boolean wasCommited()检查事务是否成功提交。
  • boolean wasRolledBack()检查事务是否成功回滚。

Hibernate中的事务管理示例

在休眠状态下,最好在发生任何异常时回滚事务,以便资源可以释放。让我们看一下休眠中的事务管理示例。


Session session = null;
Transaction tx = null;

try {
session = sessionFactory.openSession();
tx = session.beginTransaction();
//some action

tx.commit();

}catch (Exception ex) {
ex.printStackTrace();
tx.rollback();
}
finally {session.close();}