Spring 事物回滚_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > Spring 事物回滚

Spring 事物回滚

 2017/10/19 15:25:57  keney_oak  程序员俱乐部  我要评论(0)
  • 摘要:有时候事物Spring事物不回滚注意点假设methodA函数里面调用除了自己的业务逻辑还有methodB方法1想要回滚trycatch中抛出一个异常(默认是运行时异常)2增加@Transactional(readOnly=false,rollbackFor=Exception.class)3两个方法都要抛出异常要么1自己捕获抛出,2要么向上抛出/****第1业务个sql*/@Transactional(readOnly=false,rollbackFor=Exception.class
  • 标签:Spring

有时候事物Spring 事物不回滚 注意点

假设 methodA 函数 里面调用除了自己的业务逻辑 还有 methodB 方法

?

1 想要回滚 try catch 中抛出 一个异常(默认是运行时异常)

2 增加 @Transactional(readOnly = false,rollbackFor = Exception.class)

3 两个方法都要抛出异常 要么 1自己捕获抛出,2要么向上抛出

?

/***
??? ?* 第1业务个sql
??? ?*/
??? @Transactional(readOnly = false,rollbackFor = Exception.class)
??? public void methodA() {
??? ??? try {
??? ??? ??? //update 修改SQL1业务
??? ??? ??? String a = "UPDATE TABLE1 SET FirstName = 'Fred' WHERE LastName = 'Wilson'";
??? ??? ???
??? ??? ??? this.methodB();//修改SQL2
??? ??? } catch (Exception e) {
??? ??? ??? throw new RuntimeException();//抛出异常
??? ??? }
??? }

?

?

??? /**
??? ?* 第二个业务sql
??? ?*/
??? public void methodB() {
??? ??? try {
??? ??? ??? // update 修改SQL2业务
??? ??? ??? String b = "UPDATE TABLE2 SET FirstName = 'Fred' WHERE LastName = 'Wilson'";
??? ??? } catch (Exception e) {
??? ??? ??? throw new RuntimeException(e);//抛出异常
??? ??? }
??? }

?

?

?

?

发表评论
用户名: 匿名