gpt4 book ai didi

java - 使用 EJB 锁定数据源中的实体/行的最佳实践

转载 作者:行者123 更新时间:2023-11-29 12:33:24 24 4
gpt4 key购买 nike

所以问题来了。我需要某种机制来阻止数据源中的实体。例如,如果有人以写作模式打开某篇文章,那么其他人就无法以写作模式打开这篇文章,而只能以阅读模式打开。

我只看到两种方法:

  1. 在表中创建一些列(例如:isBlocked)并将其标记为已阻止
  2. 使用 EJB 单例并将打开的文章 ID 保存在数组中。

什么是更好的?还有哪些其他方法可以解决此类问题?

最佳答案

对于第一个选项,缺点是如果有人在编辑模式下打开文章并关闭浏览器而不释放它,那么该文章将保持锁定状态。您可以添加另一列,例如 lockTime 并根据它计算一些超时,之后文章将再次解锁。

第二个选项与第一个选项具有相同的缺点,而且在集群环境中并不那么容易(您必须在集群中的不同服务器之间同步单例)。

在 JPA 中,您还具有乐观锁定(使用@Version)和悲观锁定(使用entityManager.lock()),参见 thisthis例如,也许这也可以帮助您。

关于java - 使用 EJB 锁定数据源中的实体/行的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27146105/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com