赞
踩
1.,MySQL的引擎中只有InnoDB支持事务,而MyISAM引擎不支持事务,更不支持XA协议。
2. @Transactional(value = “tradeTransactionManager”, propagation = Propagation.REQUIRED, noRollbackFor = {NotRollbackException.class}, rollbackFor = {Exception.class})
注:rollbackFor属性是指出现什么异常时发生回滚,默认是发生仅对RuntimeException和 Error发生回滚,noRollbackFor 是指发生指定的异常时不发生回滚,一般会用来指定自己写的异常类
3.propagation事务的传播行为:
什么是Spring事务的传播行为:
所谓事务的传播行为是指,如果在开始当前事务之前,一个事务上下文已经存在,此时有若干选项可以指定一个事务性方法的执行行为。在TransactionDefinition定义中包括了如下几个表示传播行为的常量:
TransactionDefinition.PROPAGATION_REQUIRED:如果当前存在事务,则加入该事务;如果当前没有事务,则创建一个新的事务。这是默认值。
TransactionDefinition.PROPAGATION_REQUIRES_NEW:创建一个新的事务,如果当前存在事务,则把当前事务挂起。
TransactionDefinition.PROPAGATION_SUPPORTS:如果当前存在事务,则加入该事务;如果当前没有事务,则以非事务的方式继续运行。
TransactionDefinition.PROPAGATION_NOT_SUPPORTED:以非事务方式运行,如果当前存在事务,则把当前事务挂起。
TransactionDefinition.PROPAGATION_NEVER:以非事务方式运行,如果当前存在事务,则抛出异常。
TransactionDefinition.PROPAGATION_MANDATORY:如果当前存在事务,则加入该事务;如果当前没有事务,则抛出异常。
TransactionDefinition.PROPAGATION_NESTED:如果当前存在事务,则创建一个事务作为当前事务的嵌套事务来运行;如果当前没有事务,则该取值等价于TransactionDefinition.PROPAGATION_REQUIRED。
举个例子:
4.@Transactional注解的方法必须是公共方法或者public类,就是必须是public修饰符!!!
5.value 是指定事务管理器
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。