美文网首页
Spring事务管理

Spring事务管理

作者: 青丝如梦 | 来源:发表于2019-12-23 15:03 被阅读0次

可能是最漂亮的Spring事务管理详解

数据库隔离级别

数据库隔离级别

脏读 不可重复读 幻读
Read uncommitted
Read committed--Sql Server , Oracle默认 ×
Repeatable read--MySQL默认 × ×
Serializable × × ×

JpaTransactionManager编程式事务(手动管理事务)

    @Resource(name = "transactionManager")
    private JpaTransactionManager transactionManager;

    @Autowired
    private UserService userService;
    
    public void addUser(User user) {
        DefaultTransactionDefinition def = new DefaultTransactionDefinition();
        // 事物隔离级别,开启新事务
        def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
        //事务超时时间,超时自动rollback
        def.setTimeout(30);
        //获取事务状态
        TransactionStatus status = transactionManager.getTransaction(def);
        try {
            //业务逻辑
            userService.save(user);
            //提交事务
            transactionManager.commit(status);
        } catch (Exception e) {
            if(!status.isCompleted()){
                transactionManager.rollback(status);
            }
        }
    }

相关文章

网友评论

      本文标题:Spring事务管理

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