zl程序教程

您现在的位置是:首页 >  后端

当前栏目

Spring事务传播问题小案例

Spring案例事务 传播 问题
2023-09-11 14:17:07 时间

工作中碰到的一个小问题 记录下来

情况是这样的:

  有一个发送红包的接口写在 CouponService中,所有的发送红包不管什么场景最终都要调用这个Service中的领取红包接口 

    并且加上了事务标签,表示被事务管理  

  @Transactional(rollbackFor=Exception.class)
  List<CouponVo> checkRepertoryAndSend(参数....)

 

然后有一个场景是批量发送红包 或者其他什么之类的接口写在 CouponFacadeImpl 中;

    这个接口也是一个事物;这里还有一些其他的操作和验证,如果不通过则全部回滚,所以这里也定义成了一个事务(这不是重点) 

 

  @Transactional(rollbackFor=Exception.class)
   CouponFacade.sendCpByQuene(参数....) {
	//...
	for(int i = 0;i<telphones.length;i++) {
    try {
       //省略....
        couponService.checkRepeatable(CouponTempOrNotEnum.NORMAL, userId.toString(), templateId,
                YesOrNo.YES.getVal().equals(isRepeate)?"n":cpTemplate.getRepeatable(), null);
        //文本框的形式 就不