上图是项目中遇到的问题,在标注的地方可能会因为扣钱失败或者余额不足抛出异常来,这个时候我不想因为这个异常导致下面的请求渠道的代码走不下去,只是希望通过try catch捕获到该异常然后做订单失败的处理,由于上面说了类上加了@Transactional(rollbackFor = Exception.class)这个注解导致这里用try catch也没用,报错信息:
Transaction rolled back because it has been marked as rollback-only
最后的解决办法是(相信细心的你也发现了)在单独的这个方法上加上
@Transactional(propagation = Propagation.NESTED)这个注解