数据库:锁定特定时间段的项目

时间:2011-06-23 10:57:40

标签: java hibernate web-applications e-commerce

我们计划将hibernate框架用于类似电子商务应用程序的应用程序。

我们要求,如果用户签出物品并进入网关,我们将锁定该物品7分钟,之后物品将被释放。

我们如何设计上述要求?我们很感激。

1 个答案:

答案 0 :(得分:2)

您可能不希望为此使用数据库级别锁定。大多数数据库和数据库配置都不是围绕长期锁定的概念构建的。

我能想到的最通用的方法是在您的应用程序中构建某种锁定服务。锁定服务具有同步方法,如tryObtainLock,它将获得锁定,如果锁定可用则返回true;如果锁定不可用,则返回false(此时您可能向用户发送错误,通知他们项目已被锁定)。

然后,锁定服务可以在其自己的表中存储锁定列表,这些锁定要求它们以及何时获取它们。每隔一段时间你就可以查看是否有超过7分钟的锁定,如果有,请释放它们并通知获得锁定的人不再拥有它。