![](/img/trans.png)
[英]A good strategy/solution for concurrency with hibernate's optimistic/pessimistic locking
[英]Optimistic locking & concurrency
我的应用程序在多用户环境中工作以获取病历。 该应用程序的一个重要部分是编写医疗记录,医生应该始终查看当前的书面数据,然后根据需要添加或更正任何信息。
当两位医生(A,B)同时查看数据时,我知道了这种情况,其中一位将进行更改并点击保存(A)。
另一位医生(B)仍在编辑旧数据,他不知道医生(A)所采用的变化。
当医生(B)点击保存时,应用程序将比较数据库中的Version列,然后应用程序返回错误消息(“数据已被其他用户更改!!!”)。
在这种情况下我的问题:我的解决方案中应该有哪些选择。
我正在寻求您的经验中的专业解决方案或想法。
我的应用程序使用:Java Swing用于最终用户客户端和MySQL数据库。
医生乙方应绝对以某种方式,因为他打开了它的记录已修改通知。 其余的由您/程序的要求决定。 A医生的改变是否被覆盖是否重要? 让医生B查看医生A所做的更改,然后决定是否仍应保存更改(由医生B做出)会更好吗? 这些变化应该合并吗? 这一切都取决于您决定设计的内容,以及可能对您正在创建的系统施加的任何要求。 如果没有关于您正在设计的系统或其要求的更多细节,则无法提供具体答案。
建议:发送实时通知
如果A进行更改并点击保存,您可以发送消息“数据已被其他用户更改!!!” 在B保存他的更改之前立即到B。
此方法类似于stackoverflow。 当我写下答案时,你可以改变你的问题,我会收到一条消息
已对此帖进行了编辑; 点击加载
因此,如果A,B,C ......打开数据集D,他们应该将自己注册为观察者。 您可以使用websockets或轮询来实现此方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.