首页 > 技术文章 > 事务没有生效

ctaixw 2019-07-05 11:31 原文

@Override
public void apiImplMethod(CommonRequest<Long> commonRequest){
Long id = commonRequest.getRequestData();
test02(id);
}

@Transactional
public void test02(Long id){
GoodsSkuPo goodsSku = new GoodsSkuPo();
goodsSku.setInventory(123321);
goodsSku.setGoodsNo("0181222");
goodsSkuRepository.insertSelective(goodsSku);
System.out.println(goodsSku);
Long aa = id % 2;
if (aa == 0) {
aa = 10 / aa;
}
}

注意:apiImplMethod上没有 Transactional注解,这时事务不会生效
因为spring事务使用的是aop,aop使用的是动态代理,动态代理要求一个类必须有个接口
这个 test02 方法并没有接口,所以事务不生效,将 Transactional 加到接口实现方法上即可

推荐阅读