玩辅助的上单 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有产生异常吗?

    评论

报告相同问题?

悬赏问题

  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?