2

我有一个经典场景:基于该记录中先前准备好的值对同一记录进行两次更新。我在乐观并发的假设下工作。我自己实现条件更新并不难——问题是我是否可以依赖驱动程序或数据库中的某个 API 来为我处理它?

自然地,我用谷歌搜索了它,但我似乎想出的只是对什么是乐观并发的解释,而没有提及代码示例......

我正在使用 JDBC 数据直接驱动程序。

谢谢!

4

1 回答 1

3

不,JDBC 不支持乐观并发。乐观并发由 JPA 处理,方法是使用表的专用version列,并在每次进行更新时递增版本值。更新查询如下所示:

update foo set ..., version = version + 1 
where id = :theId and version = :theVersionLoadedInMemory

如果executeUpdate()返回 0 而不是 1,则表示其他人删除了记录,或更新了记录,从而增加了版本。

于 2012-07-19T08:40:39.857 回答