【发布时间】:2015-06-16 22:50:21
【问题描述】:
我正在使用 Java Spring Framework 和 Hibernate。我正在做一个电子商务网络应用程序,公共用户可以从网络应用程序购买产品。每个产品都有一个数量计数。
问题
我想防止两个并发用户购买相同产品的情况留下数量值为 1。在这种情况下,只有第一个用户应该购买该产品,而第二个用户应该收到“无库存”消息。
工作流程
我打算减少数量,然后将购买信息发送到支付网关。如果支付网关遇到支付问题,我会增加数量。锁定将在购买信息发送到支付网关之前被释放。
所以我的问题是,
1) 我想确认this answer 悲观锁定确实有助于解决我的问题。
2) 我的工作流程还好吗?有没有更好的方法来做到这一点?
【问题讨论】:
-
这正是标准事务管理旨在处理的情况。
-
标准事务是否足以解决问题?我想我需要申请锁。 =)
标签: java hibernate jpa concurrency transactions