当我们修改一个记录时,先get或者load这个纪录,然后填充给也页面的部分数据,也包含来自页面的版本号,
我们点击页面上的A按钮执行下面的过程
我们load出来的是最新的后假如版本号是19,
页面上记录的数据版本号是19,
我们把load出来的数据修改为页面上的19.
然后通过其他系统或者手工修改数据库的版本号为20,
然后再update,我们会发现会报错,原因是我们要修改的数据版本号已经过期了
---------上面的描述很简单吧 ,如果我们继续点击A按钮----------------
我们load出来的是最新的后版本号是20,
页面上记录的数据版本号是19,
我们把load出来的数据修改为页面上的19.
然后再update,发现update修改成功了
---------童鞋们,你们发现没有 低版本号的为什么会修改成功呢?--------------
---------总结:我认为对于持久化状态的hibernate对象,人为的修改version,不会让这个对象更旧或者更新--------------
---------加强补充---------------
我们打开页面版本号是19
我们点击A按钮
我们load数据是20
我们修改为19
结果是什么呢?
根据上面的总结,我们发现虽然我们保存的数据版本号是19,低于数据库版本,但实际版本号是20,持久态对象修改版本号不能改变对象新或者旧!