geode springboot下的事务处理

springboot启用事务@EnableTransactionManagement()
service层方法开启事务@Transactional
此时方法里面如果有geode保存更新操作,就算是异常,关系数据库可以回滚,而geode是不会回滚的,这个事务并没有代理到geode的事务,此时需要自己开始一下geode的事务

 CacheTransactionManager ct=gemfireCache.getCacheTransactionManager();

    try {

 / ct.begin();//geode缓存事务要单独开启暂时没发现能与springboot的事务结合,持久化的region不能用这个开启事务

    userInfoRepository.save(userInfo);

    UserInfo info=new UserInfo();
    info.setId(userInfo.getId());
    info.setName("name"+info.getId());
    info.setAge(18);
    userInfoMapper.insertSelective(info);
        Region r=gemfireCache.getRegion("region");

        r.put("test"+userInfo.getId(), "a"+userInfo.getId(),10);



        if("".equals("")) {
            //throw new RuntimeException("新异常啦1");
        }
        ct.commit();
    } catch (Exception e){
        ct.rollback();
        e.printStackTrace();
        throw e;

    }finally {

    }

此时如果里面抛出异常就两者都 会回滚了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值