玩辅助的上单 2019-07-09 10:22 采纳率: 0%
浏览 474

update不会事务回滚求问大佬们是哪的问题?

# 用spring boot做数据导出时,插入数据抛异常可以事务回滚,但是update却不会事务回滚求问大佬们是哪的问题?

启动类


@SpringBootApplication(scanBasePackages = {"com.moredata"})


@MapperScan({"com.moredata.dao","com.moredata.dao.master"})

@ComponentScan(basePackages = "com.moredata.*")

@EnableTransactionManagement

@EnableAspectJAutoProxy

@EnableScheduling

public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }

    @Bean
    public PlatformTransactionManager txManager(DataSource dataSource){
        return new DataSourceTransactionManager(dataSource);
    }

    @Bean
    public Object testBean(PlatformTransactionManager platformTransactionManager){
        System.out.println(">>>>>>>>>>"+platformTransactionManager.getClass().getName());
        return new Object();
    }
}

mapper不会回滚方法



public interface EmGrZsmxSyncDtoMapper {

    @Update({
            "update EM_GR_ZSMX_SYNC",
            "set SYNC_STATE = '1'",
            "where ID = #{id,jdbcType=DECIMAL}"})
    void updateSyncStateById(BigDecimal id);
}

service



@Service

@Transactional(rollbackFor=Exception.class)

public class TestOneServiceImp implements ITestOneService {

@Resource
    TestOneDtoMapper testOneDtoMapper;

    @Resource
    TestTwoDtoMapper testTwoDtoMapper;

    @Resource
    OperationLogDtoMapper operationLogDtoMapper;

    @Resource
    EmGrZsmxSyncDtoMapper emGrZsmxSyncDtoMapper;

    @Resource
    ImpDataDtoMapper impDataDtoMapper;

    @Resource
    EmGrZsmxSyngLogDtoMapper emGrZsmxSyngLogDtoMapper;
@Override

    @Log(methodDesc = "数据导出")

    @Transactional(rollbackFor=Exception.class)
    public void insertEM(EmGrZsmxSyncDto emGrZsmxSyncDto) {

            System.out.println("定时插入进入");
            impDataDtoMapper.insert(emGrZsmxSyncDto);
            emGrZsmxSyncDtoMapper.updateSyncStateById(emGrZsmxSyncDto.getId());
            EmGrZsmxSyngLogDto emGrZsmxSyngLogDto = new EmGrZsmxSyngLogDto();
            emGrZsmxSyngLogDto.setSyncId(emGrZsmxSyncDto.getId());
            emGrZsmxSyngLogDto.setZzbh(emGrZsmxSyncDto.getZzbh());
            emGrZsmxSyngLogDto.setSyncDate(new Date());
            JSONObject jsonObject = JSONObject.fromObject(emGrZsmxSyncDto);
            String jsonStr = jsonObject.toString();
            emGrZsmxSyngLogDto.setSyncContent(jsonStr);
            emGrZsmxSyngLogDtoMapper.insert(emGrZsmxSyngLogDto);
            System.out.println(emGrZsmxSyncDto.getId());
            throw new RuntimeException("运行异常");

    }


}
  • 写回答

2条回答 默认 最新

  • 真-酸辣土豆丝 2019-07-09 11:22
    关注

    回滚要有异常产生。你的update有产生异常吗?

    评论

报告相同问题?

悬赏问题

  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)
  • ¥20 matlab yalmip kkt 双层优化问题
  • ¥15 如何在3D高斯飞溅的渲染的场景中获得一个可控的旋转物体
  • ¥88 实在没有想法,需要个思路
  • ¥15 MATLAB报错输入参数太多
  • ¥15 python中合并修改日期相同的CSV文件并按照修改日期的名字命名文件
  • ¥15 有赏,i卡绘世画不出