Hibernate事务管理示例

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

Hibernate事务管理示例

文章图片
Hibernate中的事务接口
在Hibernate框架中, 我们具有用于定义工作单元的Transaction接口。它保持对事务实现(JTA, JDBC)的抽象。
事务与Session关联, 并通过调用session.beginTransaction()实例化。
事务接口的方法如下:
  1. void begin()启动一个新事务。
  2. 除非我们处于FlushMode.NEVER, 否则void commit()会终止工作单元。
  3. void rollback()强制此事务回滚。
  4. void setTimeout(int seconds)它为由后续调用开始在此实例上开始的任何事务设置事务超时。
  5. boolean isAlive()检查事务是否仍然存在。
  6. void registerSynchronization(Synchronization s)为此事务注册用户同步回调。
  7. boolean wasCommited()检查事务是否成功提交。
  8. boolean wasRolledBack()检查事务是否成功回滚。
Hibernate中的事务管理示例
在Hibernate状态下, 最好在发生任何异常时回滚事务, 以便资源可以释放。让我们看一下Hibernate中的事务管理示例。
Session session = null; Transaction tx = null; try { session = sessionFactory.openSession(); tx = session.beginTransaction(); //some actiontx.commit(); }catch (Exception ex) { ex.printStackTrace(); tx.rollback(); } finally {session.close(); }

    推荐阅读