共计 819 个字符,预计需要花费 3 分钟才能阅读完成。
事务只是一个工作单位 (单元)。在这种情况下,如果一个步骤失败,则整个事务失败(称为原子性)。ACID 属性(原子性,一致性,隔离性和持久性) 可以描述事务。
Hibernate 中的事务接口
在 hibernate 框架中,我们有 Transaction 接口来定义工作单元。它维护了事务实现 (JTA,JDBC) 的抽象。
事务与 Session 相关联,并通过调用 session.beginTransaction()实例化。
Transaction 接口的方法如下:
- void begin() 开始一个新的事务。
- void commit() 结束工作单位,在 FlushMode.NEVER 中除外。
- void rollback() 强制此事务回滚。
- void setTimeout(int seconds) 它为由此实例开始的后续调用启动的任何事务设置事务超时。
- boolean isAlive() 检查交易是否仍然存在。
- void registerSynchronization(Synchronization s) 为此事务注册用户同步回调。
- boolean wasCommited() 检查事务是否成功提交。
- boolean wasRolledBack() 检查事务是否成功回滚。
Hibernate 中的事务管理示例
在 hibernate 中,如果发生任何异常,最好回滚事务,以便资源可以释放自由。我们来看看 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();
}
Java 学习路线推荐:阿里云大学——开发者课堂
正文完
发表至: java
2019-06-14