数据库支持乐观并发

时间:2012-07-19 06:39:06

标签: jdbc optimistic-concurrency

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

当然,我用Google搜索了它,但我似乎想出的只是解释了什么是乐观并发,而没有提到代码示例......

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

谢谢!

1 个答案:

答案 0 :(得分:3)

不,JDBC对乐观并发没有任何支持。 JPA通过对表使用专用version列来处理乐观并发,并在每次更新时递增版本值。更新查询如下所示:

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

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