库存的业务场景,当大量用户同时出库时,如何保证货物表的库存字段扣减正确且不为负数 。
流水表 tableA ;
货物表tableB 库存字段stock;
代码示意:
getOne(){
tableA.insert(obj);
tableB.update(tableB.stock-1)
}
我目前知道有这些方式,
1 在方法上加 aop.READ_COMMITTED
2 在方法上加 synchronized
3 tableB加version字段
-------------------------------------
问题是这种业务场景,改使用哪种方式处理?
fetchOne(){
tableA.insert();
tableB.update(tableB.stock-1);
}
dd