TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();

这里使用的场景是,跨服务调用接口,比如:用户信息和用户积分信息在分别存在两个系统中,我们在用户系统中调用一个接口同时删除这两个信息,假设service层方法为deleteUserAndPoints(),具体如下所示:

deleteUserAndPoints(){

  第一步:删除用户

  第二步:通过restTemplate方式调用积分系统删除接口

    根据返回的结果状态,成功或者失败

    如果失败则:TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(), 然后return 相应的提示信息(“删除失败”);如果直接return 其实事务不会回滚的,导致用户信息删除,积分信息未删除;另外,我们正常情况下可以直接 throw new RuntimeException(),也能回滚事务,但是这等于手动制造了一个系统异常,个人觉得很不友好

    如果成功则:不处理

}

最新文章

  1. ACM之路(20)—— Splay初探
  2. ubuntu16.04 安装网易云音乐
  3. SU suspike命令学习
  4. iOS开发——图形与动画篇OC篇&图层基本上动画
  5. JAXB - Unmarshalling
  6. MVC 中 使用TagBuilder扩展HtmlHelper
  7. C#编程使用到的几种调试方式
  8. iOS 辛格尔顿
  9. SpringMvc MultipartFile 图片文件上传
  10. Javascript 查找元素
  11. js中时间的处理
  12. UVA 10622 Perfect P-th Powers
  13. 如何在ADO中使用数据读取器(DataReader)读取数据
  14. Mac下查看已安装的jdk版本及其安装目录
  15. [C++]2-6 排列
  16. Python从菜鸟到高手(3):声明变量
  17. ssh-keygen生成git ssh密钥
  18. Java生成指定范围内的工具类
  19. python redis 的基本操作指令
  20. android 视频 2017

热门文章

  1. Java静态代码块与非静态代码块
  2. 【BZOJ5194】Snow Boots
  3. 【新特性】JDK1.7
  4. VBoxManage
  5. 13_文件系统访问列表_case语句及脚本选项
  6. 实验七 《FBG》—-小学生课后习题答案原型设计
  7. Springboot 中配置文件的优先级和加载顺序
  8. Active Record Query Interface 数据查询接口(界面) 看到第8节。
  9. HDOJ-2011
  10. BUAAOO-First-Summary