我们之前做事务管理都是添加@Transactional,但是这个注解只能加在类和方法上,对于方法比较大,但是只有其中部分代码我们需要做事务管理时可以使用。transactionManager。

 @Autowired
 private TransactionTemplate transactionTemplate;

    @Override
    public ChannelAddResponse add(ChannelAddRequest channelAddRequest)  {
        transactionTemplate.execute(action ->{
            TaskDO taskDO = new TaskDO();
            CopyParamNotNullUtil.copyPropertiesIgnoreNull(channelAddRequest, taskDO);
            taskDO.setStatus(TaskStatusEnum.UNEXECUTED.getStatus());
            taskDao.save(taskDO);

            ChannelDO channelDO = new ChannelDO();
            channelDO.setTaskDO(taskDO);
            CopyParamNotNullUtil.copyPropertiesIgnoreNull(channelAddRequest, channelDO);
            channelDao.save(channelDO);
            return null;
        });

}
这样就事务就和方法解柔了。
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐