gpt4 book ai didi

java - 如何使用 hibernate Transaction API 管理并发

转载 作者:行者123 更新时间:2023-11-30 02:13:31 24 4
gpt4 key购买 nike

我有在分布式环境中运行的应用程序。我想要这样的场景,比如两个同时请求我更新表的情况。如果第一个请求成功更新表,则下一个请求不应被执行/丢弃并带有某些消息。所以用户必须再次加载更新的数据并再次进行更新操作。解决方案我发现一种常见的解决方案是版本控制,方法是在表中添加一个键作为版本,并在每次更新表时进行比较。

我正在寻找其他解决方案,因为 Hibernate 是强大的框架,还有其他方法可以实现此解决方案。

通过阅读 JBoss 的一篇文章,有一种称为事务 API 的东西,我们也可以通过它来实现,但不清楚如何实现解决方案。

最佳答案

Hibernate 可以使用乐观锁定和悲观锁定,如 official documentation, Chapter 5. Locking 中所述。 .

如果您的数据库实体不存在争用,那么使用 @Version 列进行优化锁定似乎是正确的方法。如果您需要悲观锁定,请检查 LockMode 类。另一种选择是使用 SELECT FOR UPDATE 语句(如果数据库中可用)。然而,由于在幕后发生的额外数据库操作,所有悲观锁定方法通常比简单的乐观锁定解决方案更昂贵。

关于java - 如何使用 hibernate Transaction API 管理并发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49351667/

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