21得票2回答
如何在我的Rails应用程序中避免竞态条件?

我有一个非常简单的Rails应用程序,允许用户在一组课程中注册他们的出席情况。ActiveRecord模型如下:class Course < ActiveRecord::Base has_many :scheduled_runs ... end class ScheduledR...

22得票2回答
Hibernate默认使用乐观锁机制实现并发控制。

我有一个关于Hibernate中乐观锁的问题。 我正在尝试深入了解Hibernate中的乐观锁,但有一个疑问。 Hibernate使用版本方法(整数或时间戳)来实现乐观锁定。 要进行配置,可以使用@Version注释(或XML配置)并创建一个版本属性。 另一种选项是在没有版本控制的情况下配置,...

8得票2回答
如果我需要第二次读取版本,为什么应该使用可重复读(或更高)的隔离级别?

我已阅读马丁·福勒(Martin Fowler)的书籍章节“乐观离线锁定”。 作者描述了以下示例(如果我理解正确的话): 有两个实体:Order 和 Client。涉及两项业务交易: 1. 第一笔交易计算订单的税款金额。税款金额取决于 Order points 和客户地址。 2. 第二笔...

9得票1回答
NHibernate的StaleObjectStateException之后如何优雅地合并对象图?

我们正在尝试在抛出StaleObjectStateException后合并对象以保存合并后的副本。 以下是我们的环境情况: - 多用户系统 - WPF桌面应用程序,SQL Server 2008数据库 - NHibernate 3.1.0.4000,FluentNHibernate 1.2...

27得票1回答
使用哪种HTTP状态码来拒绝由于乐观锁定失败而发起的PUT请求

假设我想要实现一种乐观锁定策略,并使用ETags指示最新的资源状态。这意味着当客户端进行更新时,客户端将使用If-Match标头进行PUT请求。 根据HTTP规范,如果提供给If-Match标头的ETag与资源当前状态不匹配,则服务器必须返回412 Precondition failed。 ...

8得票1回答
何时明确排除乐观锁定(Hibernate)?

在使用Hibernate的@OneToMany关系时,什么情况下明确排除乐观锁定是合适的? 我一直在阅读有关Hibernate的文章,基本上说任何对子实体的更新都会导致父实体的乐观锁定,这通常是不需要的。关键词在于“通常”... 有人能更精确地解释在这种关系中何时需要或不需要乐观锁吗? 以...

10得票2回答
如何从Java代码中编写乐观锁和悲观锁

我知道什么是乐观锁和悲观锁,但是在编写Java代码时,应该如何实现呢?假设我正在使用Java的Oracle,是否有JDBC中的方法可以帮助我实现这个过程?我应该如何进行配置?非常感谢您提供任何指导。

12得票1回答
如何在前端使用Hibernate乐观锁版本属性?

使用实体的版本属性进行乐观锁定非常好用且易于实现: <version property="VERSION" type="int" column="EX_VERSION" /> 实体具有以下类型的属性: private int VERSION; public int getV...

7得票3回答
使用乐观锁时可能会出现死锁吗?

众所周知,有两种锁定策略:乐观锁定 vs. 悲观锁定。 悲观锁定是指您将记录锁定以供您独占, 直到您完成为止。它的完整性比乐观锁定好得多,但需要您注意应用程序设计,以避免死锁。 另外,乐观并发控制与多版本并发控制(Oracle或MSSQL-Snapshot/MVCC-RC)不同:乐观锁定与...

7得票2回答
获取过期对象错误。乐观锁:它是如何工作的?

我认为我已经清除了所有问题,但是我不确定我是否完全理解OL。一般来说,假设你和我在一个团队中来保持foo的最新状态。我在一个房间里,决定节省时间,自己更新foo。一分钟后,你也有了同样的想法,并登录到编辑页面以更新它。如果我先完成会发生什么?如果你先完成会发生什么?在配置失败的情况下,它如何区...