事务只是一个工作单位(单元)。 在这种情况下,如果一个步骤失败,则整个事务失败(称为原子性)。 acid属性(原子性,一致性,隔离性和持久性)可以描述事务。
在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中事务管理的例子。
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();}