事务小记

最近公司在重构新系统,比较繁忙的同时我的知识面也在增长,在和同事的交谈中有谈到事务的处理,这里小小记录一下。

事务的回滚:Spring等框架已经帮我们处理好单次数据库操作的事务,但往往业务上有很多场景是需要一个方法内多次操作数据库的。这里举个例子就是订单进件的时候需要同时开启一个绑定业务主键(这里指订单主键)的流程,于是插入订单成功但开启流程不成功的情况下订单列表里就查看不了这条订单的流程了,这个一对一的关系的数据不一致了。所以我们需要在那个方法里面做一下事务处理,用Spring的事务注解
@Transactional(rollbackFor = Exception.class)
可以实现开启流程或插入订单出现异常的时候数据库回滚,当然这时方法要在需要回滚的情况下抛异常。

其他注解也讨论了一下,比如@Transactional(propagation=Propagation.REQUIRES_NEW)
在分布式RPC调用远程方法的时候,如果出现远程调用失败,但是同时也想本地的方法也同样提交事务,这时候就可以使用这个注解来达成想要的效果。

然而这个注解应该用在被远程调用的方法那里。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 这部分的参考文档涉及数据访问和数据访问层和业务或服务层之间的交互。 Spring的综合事务管理支持覆盖很多细节,然...
    竹天亮阅读 4,652评论 0 0
  • 很多人喜欢这篇文章,特此同步过来 由浅入深谈论spring事务 前言 这篇其实也要归纳到《常识》系列中,但这重点又...
    码农戏码阅读 10,204评论 2 59
  • 原文:http://www.cnblogs.com/younggun/archive/2013/07/16/319...
    Feng_Sir阅读 4,177评论 0 3
  • 这个时代的每个人都会说,这是一个快速发展的时代,生活节奏快,一觉醒来就会被改变的年代,所以我们要么走在时代前沿,要...
    Jye阅读 3,938评论 0 2
  • 冥想,锻炼心的科学方法。 为什么我要写冥想日记? 说实在的,没有认真想过这个问题。之前每次在静坐之后都会写篇叫“静...
    Phanleys阅读 3,630评论 0 2