gpt4 book ai didi

java - Hibernate:处理多个事务?

转载 作者:行者123 更新时间:2023-11-30 07:46:03 25 4
gpt4 key购买 nike

我正在尝试并且非常好奇地了解 Hibernate。如果两个或多个用户尝试使用来自不同 PC 的相同表单同时在同一个表中插入某些内容,

  • Hibernate 将如何管理此事务?
  • 哪条记录将首先保存?
  • 它会应用锁吗?
  • 其内部如何运作?

最佳答案

让我们命名用户 A 和 B。

用户 A 的请求将通过事务更新数据库,并且在该事务结束时,更改将默认提交到数据库。(当然您可以更改此设置)

用户 B 的请求也会在另一个事务中执行,最后也会提交到数据库。

提交到数据库时,会有并发控制的锁定,这也取决于数据库和hibernate配置。

  • 乐观锁定

当使用乐观锁定时,您将一个特殊属性(数字、时间戳)映射为版本(因此您实际上有一个列)。当您检索实体时会读取此版本,并在更新期间将其包含在 where 子句中,并由 Hibernate 递增。

  • 悲观锁定

当使用悲观锁定时,Hibernate 会锁定一条记录供您独占使用,直到您使用完毕为止

希望这有帮助。

关于java - Hibernate:处理多个事务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33952610/

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