@Transactional的属性
@Transactional的属性:
isolation-Isolation:事务的隔离级别(与并发相关)
noRollbackFor-Class[]:那些异常,事务可以不回滚
noRollbackForClassName-String[](String全类名):
rollbackFor-Class[]:哪些异常,事务需要回滚;
rollbackForClassName-String[]:
异常分类:
运行时异常(非检查异常):可以不用处理;默认都回滚
编译时异常(检查异常);要么try-catch,要么在方法上声明throws,默认不回滚;
事务的回滚:默认发生运行时异常都 回滚,发生编译时异常不会回滚;
noRollbackFor:哪些异常事务可以不回滚;(可以让原来默认回滚的异常给他不回滚)
例子:noRollbackFor={ArithmeticException.class,NullPointerException.class}
noRollbackForClassName:
例子:noRollbackForClassName = {"java.lang.ArithmeticException"}
rollbackFor:原本不回滚(原本编译时异常是不回滚的)的异常指定让其回滚;
readOnly-boolean:设置事务为只读事务:
可以进行事务优化;
readOnly=true:加快查询速度;不用管事务那一堆操作了。
timeout-int(秒为单位):超时:事务超出指定执行时长后自动终止并回滚
@throws FileNotFoundException
propagation-Propagation:事务的传播行为;
传播行为(事务的传播+事务的行为);
如果有多个事务进行嵌套运行,子事务是否要和大事务共用一个事务;
传播行为:(多个事务之间的关系)
AService{
tx_a(){
//a的一些方法
tx_b(){
}
tx_c(){
}
}
}