美文网首页
手动改变事务传播行为

手动改变事务传播行为

作者: Vic_is_new_Here | 来源:发表于2021-07-02 14:01 被阅读0次

        通常在项目中,会设置默认的事务传播行为,有时候我们想在某些方法中改变事务传播行为,在方法上加@Transactional(propgation=xxx)不一定有用,可以用下面的方式手动加上。

    先定义类变量

@Autowired

DataSourceTransactionManagerdataSourceTransactionManager;

在方法中写上

TransactionTemplate transactionTemplate =new TransactionTemplate(dataSourceTransactionManager);

transactionTemplate.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);

这就改变了事务传播行为了。

项目中有个需求,就是在进行业务处理之前需要更新另外的表(任务表),处理业务与任务表的更新不能在同一事务中,而且项目中用的事务传播行为是REQUIRED,按这个需求应该用REQUIRES_NEW,试了许多方法都没法改变事务传播行为,最后用了了上文的手动更改,不同的是在设置好传播行为后面加上了

transactionTemplate.execute(new TransactionCallbackWithoutResult() {

    //自己的代码

});

这样,我的更改任务表的sql就自成事务,与业务处理不相干扰。

相关文章

  • 手动改变事务传播行为

    通常在项目中,会设置默认的事务传播行为,有时候我们想在某些方法中改变事务传播行为,在方法上加@Transactio...

  • spring事务相关知识点

    Spring中七种事务传播行为 事务的传播行为,默认值为 Propagation.REQUIRED。可以手动指定其...

  • 实践出真知--Spring 事务传播行为

    Transactional#Propagation事务传播行为 事务传播行为用来描述由某一个事务传播行为修饰的方法...

  • 深入理解Spring事务的传播行为

    本文主要介绍下Spring事务中的传播行为。 事务传播行为介绍 Spring中的7个事务传播行为: 举例说明 案例...

  • Spring事务简介

    事务的传播行为 Spring事务有7种传播行为: PROPAGATION_REQUIRED 支持当前事务,如果当前...

  • spring事务

    事务的属性@Transactional(...) 1、propagation:用来设置事务的传播行为 事务的传播行...

  • 事务传播行为

    ======为常用属性 PROPAGATION_REQUIRED--支持当前事务,如果当前没有事务,就新建一个事务...

  • 事务传播行为

    spring事务的传播行为说的是当一个方法调用另一个方法时,事务该如何操作 propagation=Propaga...

  • Spring嵌套事物

    一、事务传播机制: 事务的传播行为是针对嵌套事务而言。 示例: @Transactional(propagatio...

  • spring 事务管理

    事务传播行为种类 Spring在TransactionDefinition接口中规定了7种类型的事务传播行为, 它...

网友评论

      本文标题:手动改变事务传播行为

      本文链接:https://www.haomeiwen.com/subject/rbmeultx.html