Kevin.Zhong

彪悍的人生不需要解释,彪悍的代码不需要测试。

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  17 随笔 :: 12 文章 :: 14 评论 :: 0 Trackbacks
关于jpa的@Version标记,看文档时愣没看懂。在这里摘抄个例子。

   例:假设当前数据的版本为1,余额为100

a. 操作员A此时将其读出(version=1),并从其账户余额中扣除$50(100-50)。

b. 在操作员A操作的过程中,操作员B也要读入此用户信息(version=1),并从其账户余额中扣除$20(100-20)。

c. 操作员A完成修改工作,将数据版本号加1(version=2),连同余额$50一并提交数据库更新,此时由于提交数据版本大于数据库记录的当前版本,数据被更新,数据库记录版本更新为2。

d. 操作员B完成操作,也将版本号加1(version=2)试图向数据库提交数据$80,但此时比对数据库记录版本时发现,操作员B提交的数据版本号为2,数据库记录当前版本也为2,不满足“提交版本必须大于记录当前版本才能执行更新”的乐观锁策略,因此,操作员B的操作被驳回。
posted on 2008-10-10 13:05 Kevin.Zhong 阅读(6784) 评论(0)  编辑  收藏 所属分类: Jpa

只有注册用户登录后才能发表评论。


网站导航: