当前位置: 首页 > 知识库问答 >
问题:

为删除和插入查询Hibernate乐观锁定

刘狐若
2023-03-14

我知道使用版本列的Hibernate乐观锁定适用于并发更新。当记录被同时删除和重新插入时,它是否有效?

共有1个答案

令狐跃
2023-03-14

不,当您删除记录时,它不起作用,因为它使用行中的版本字段,而当您删除该字段时,该字段将不可用。

 类似资料:
  • 在同一个表中的一个并发插入操作中,我得到了ConstraintViolationException。 Hibernate乐观锁在这方面能帮我吗?据我所知,乐观锁定适用于数据库中同一记录的更新/删除操作。 它也适用于插入查询吗? 我在目标表(实体)中创建了一个版本列。但仍然得到相同的异常(没有乐观的LockException或StaleObjectStateException)。

  • 我有一个带有和的微服务。我使用注释对中的表执行操作。我遇到的问题是保存操作花费了太多的时间,所以我希望读取操作不被它阻塞。注意,保存是通过持久化实体来执行的。 当前,在所有并发保存操作完成之前,所有读取操作都不会返回结果,这意味着表被锁定。相反,我希望实现乐观锁定。我怎样才能做到呢?

  • 悲观锁:假定会发生并发冲突,屏蔽一切可能违反数据完整性的操作 乐观锁:假设不会发生并发冲突,只在提交操作时检查是否违反数据完整性。 乐观锁与悲观锁的具体区别: http://www.cnblogs.com/Bob-FD/p/3352216.html

  • 问题内容: 当我尝试从数据库中删除条目时,使用 然后我可以执行以下操作: 1)如果该行存在于数据库中,则将执行两个SQL查询:一个选择,然后一个删除 2)如果数据库中不存在该行,则仅执行选择查询 但是同样,更新不是这种情况。无论是否存在数据库行,都只会执行更新查询。 请让我知道为什么这种行为用于删除操作。这不是性能问题,因为遇到了两个查询而不是一个查询? 编辑: 我正在使用hibernate3.2

  • 问题内容: 我试图按顺序实施乐观锁定,以避免丢失更新情况。在我的应用程序中,当两个用户获取相同的记录,而第一个用户通过一些更改对其进行更新时。查看相同记录的第二个用户看不到此更改,并且他自己进行了一些更改并更新了该记录。因此,第一人称更改丢失。为了防止这种情况,我写了以下内容,但问题仍然存在。我是这个概念的新手,无法发现问题。 我试图通过阅读doc 11.3.4 来实现这一目标。自定义自动版本控制

  • 在多用户环境中,在同一时间可能会有多个用户更新相同的记录,会产生冲突,解决方案有两种:乐观锁、悲观锁。 悲观锁在这里不讲,自行Google。 乐观锁假设不会发生并发冲突,只在提交操作时检查是否违反数据完整性,不完整则更新失败。 乐观锁实现方式 使用整数表示数据版本号.更新时检查版本号是否一致,如果相等,则更新成功,且版本号+1.如果不等,则数据已经被修改过,更新失败。 使用时间戳来实现。 本质上也