关于Spring中@transactional注解使用遇到的问题
业务场景:在取消订单后,返还库存
使用过程:
1.有问题的逻辑
@transactional
public [typeName] [methodName]{
//1.查到该订单所含目标商品数量
//2.直接更新商品库存
//3.更新订单状态
}
这里出现一个问题,库存返还成功,但是更新订单状态异常,最终导致"订单取消失败,但是库存返还";
2.成功的逻辑
@transactional
public [typeName] [methodName]{
//1.查到该订单所含目标商品数量
//2.更新订单状态
//3.直接更新商品库存
}
这里,更新订单状态异常,库存未返还,达到预期结果。
问题:@transactional在第一种情况下,为什么会处理失败呢?