NutzCN Logo
问答 关于库存业务的事务使用问题
发布于 2271天前 作者 qq_a930202f 1374 次浏览 复制 上一个帖子 下一个帖子
标签:

库存的业务场景,当大量用户同时出库时,如何保证货物表的库存字段扣减正确且不为负数 。
流水表 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
4 回复

网站文章编辑器的插入代码,编辑错了

dao.update(Xxx.class, Chain.makeSepice("库存", "-1"), Cnd.where("库存", ">", 1));

@wendal 我提到的3种方式都不需要用,直接用这一句就可以了吗?

试一下,看看输出的sql是不是你想要的

添加回复
请先登陆
回到顶部